我有这样的布局。
<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中的Button
和EditText
不起作用。如何通过java代码完成?
答案 0 :(得分:8)
您应该在布局上设置触控侦听器,如:
your_liner_layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event){
return true;
}
});
这将消耗事件并阻止事件的传播
答案 1 :(得分:4)
我的理解是box2(和它的子视图)不应该是可点击的,而box1应该是。所以在box2中添加属性clickable =“false”,在box1中添加clickable ='''true''。
否则提供有关您的概率的其他详细信息。