我在FrameLayout
,view pager
和backround view
上有两个孩子
我将背景视图添加为第二个孩子,因此它应该位于我的视图寻呼机之上。
问题是我仍然可以滚动我的视图寻呼机,尽管它上面有另一个视图。
结构是:
<FrameLayout>
<DrawerLayout>contains view pager and content</DrawerLayout>
<LinearLayout></LinearLayout> -> this is where I add my view as a black background
</FrameLayout>
如何禁用framelayout的第一个子节点的输入和侦听器,还是有更简单的方法来执行此操作?
尝试设置elevation
和bringViewToFront()
,但这些不起作用。
由于
答案 0 :(得分:1)
您可以在focus
和framelayout
上停用enable focus on child views
。看看这对你有帮助。
framelayout.setFocusable(false);
framelayout.setFocusableInTouchMode(false);
为focusable
和true
设置drawerlayout
到linearlayout
。希望这会有所帮助。
答案 1 :(得分:0)
我想我找到了答案。 一直潜伏着堆栈溢出,并找到了答案
Overlaying a view does not disable actions on underlying view
nizammoidu声明,如果前视图没有消耗触摸事件,则底层视图(在视图后面)将拦截触摸事件。
所以解决方案是给出顶视图(在我的例子中为LinearLayout) 可点击的参数为true
view.setClickable(true);
或
{{1}}