2

我有这样的布局。

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        ....>
        <LinearLayout
        android:id="@+id/box1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
           ...............
           ..............
        </LinearLayout>
        <LinearLayout
        android:id="@+id/box2"
        android:background="#c0000000"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
           .............
           .............
        </LinearLayout>
</RelativeLayout>

Box2 显示在 Box1 上方,由于 Box2 的半透明颜色,Box1 部分可见。现在我想让box2消耗掉所有的触摸事件,这样box2中的Buttons和EditTexts就不起作用了。java代码是如何实现的?

4

2 回答 2

8

您可以在布局上设置触摸侦听器,例如:

your_liner_layout.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event){                  
       return true;
    }
});

这将消耗事件并阻止事件的传播

于 2013-03-05T11:50:48.270 回答
4

我的理解是 box2 (及其子视图)不应该是可点击的,而 box1 应该是。所以在 box2 relativeLayout 中添加属性 clickable="false" 和在 box1 中添加 clickable='''true'' 。

否则提供有关您的概率的其他详细信息。

于 2013-03-05T11:14:09.253 回答