如何在第一个视图FrameLayout上禁用侦听器和输入

时间:2016-02-11 10:26:51

标签: android view android-framelayout

我在FrameLayoutview pagerbackround view上有两个孩子 我将背景视图添加为第二个孩子,因此它应该位于我的视图寻呼机之上。

问题是我仍然可以滚动我的视图寻呼机,尽管它上面有另一个视图。

结构是:

<FrameLayout>

   <DrawerLayout>contains view pager and content</DrawerLayout>
   <LinearLayout></LinearLayout> -> this is where I add my view as a black background

</FrameLayout>

如何禁用framelayout的第一个子节点的输入和侦听器,还是有更简单的方法来执行此操作?

尝试设置elevationbringViewToFront(),但这些不起作用。

由于

2 个答案:

答案 0 :(得分:1)

您可以在focusframelayout上停用enable focus on child views。看看这对你有帮助。

framelayout.setFocusable(false);
framelayout.setFocusableInTouchMode(false);

focusabletrue设置drawerlayoutlinearlayout。希望这会有所帮助。

答案 1 :(得分:0)

我想我找到了答案。 一直潜伏着堆栈溢出,并找到了答案

Overlaying a view does not disable actions on underlying view

nizammoidu声明,如果前视图没有消耗触摸事件,则底层视图(在视图后面)将拦截触摸事件。

所以解决方案是给出顶视图(在我的例子中为LinearLayout) 可点击的参数为true

view.setClickable(true);

{{1}}