我有一个linearyLayout有几个linearlayout和一些视图。
我想让整个布局不可点击
这是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);
And I did
view.setClickable(false);
,但它仍然是可点击的当我触摸布局时,布局的监听器仍然会触发
你可以用自定义视图禁用触摸事件传播,如下所示:
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">