2016-10-13 126 views
0

我有一个linearyLayout有几个linearlayout和一些意见。有什么办法让Linearlayout让孩子不能点击android吗?

我想使整个布局不可点击。

这是对的LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/selector_timetable_row" 
    android:orientation="vertical"> 

我第一次没充气

View view = layoutInflater.inflate(~~, above layout); 

的第一部分,我做

view.setClickable(false); 

,但它仍然是可点击 监听器当我触摸布局时,布局仍会触发。

+0

如果你只是不重写点击事件? –

+0

您是否意味着不重写可点击事件? –

+0

clickable应该在运行时确定,就像在java代码中不是xml一样 –

回答

0

您可以自定义视图禁止触摸事件传播象下面这样:

public class CustomLinearLayout extends LinearLayout { 

    public CustomLinearLayout(Context context) { 
     super(context); 
    } 

    public CustomLinearLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    public boolean dispatchTouchEvent(MotionEvent ev) { 
     return false; 
    } 
} 

使用这样的:

<{Here is package name}.CustomLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/selector_timetable_row" 
    android:orientation="vertical"> 
相关问题