我有一个包含 ListView 的 DrawerLayout 和一个包含 TabHost 的 FrameLayout。如果我单击 DrawerLayout 的空白区域,则单击会传递到 FrameLayout,通常会更改选项卡的状态。选项卡从视图中隐藏,所以我不希望发生这种情况。
当 DrawerLayout 打开时,是否有任何方法可以拦截触摸事件,这样就不会发生这种情况?
我有一个包含 ListView 的 DrawerLayout 和一个包含 TabHost 的 FrameLayout。如果我单击 DrawerLayout 的空白区域,则单击会传递到 FrameLayout,通常会更改选项卡的状态。选项卡从视图中隐藏,所以我不希望发生这种情况。
当 DrawerLayout 打开时,是否有任何方法可以拦截触摸事件,这样就不会发生这种情况?
尝试这个 :
getParent().requestDisallowInterceptTouchEvent(true);
这不允许将事件传递给其父布局。(停止事件传播)。
在滑动窗格布局上设置android:clickable="true"
标签。
在您的抽屉片段中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.drawer_layout, null);
view.setClickable(true); // your solution!
return view;
}