我有一个线性布局和一个按钮。即使我触摸按钮上方/上方,我也需要拦截父母触摸听众。 这是我的代码: -
<LinearLayout
android:id="@+id/button_privacy_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/wysiwyg_privacy_selector"
android:paddingBottom="@dimen/ten"
android:paddingLeft="@dimen/twenty"
android:paddingRight="@dimen/ten"
android:paddingTop="@dimen/ten" >
<Button
android:id="@+id/buttonPrivacy"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:background="@drawable/ic_privacy"
android:focusable="false"
android:focusableInTouchMode="false" />
</LinearLayout>
我可以通过某些属性使用xml来实现吗?
答案 0 :(得分:0)
尝试使用父return false
方法中的onTouch
:
public boolean onTouch(View v, MotionEvent event) {
//Some code
return false;
}
答案 1 :(得分:0)
你需要为LinearLayout设置OnTouchListener并在onTouch方法中返回false
buttonPrivacyLayout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP)
//buttonPrivacyLayout view was clicked
return false;
}
});
如果onTouch方法返回false,则按钮也可以处理OnTouchListener
答案 2 :(得分:0)
试试这个:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dip"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/parent"
android:layout_width="100dip"
android:layout_height="50dip" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:id="@+id/parent2"
android:layout_width="100dip"
android:layout_height="50dip" >
</LinearLayout>
并执行parent2布局的单击