我只希望 ID 为 clickable_txtView
的 TextView 在相对布局中可点击。这是代码 -
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@android:id/empty"
android:clickable="false">
<ImageView
android:layout_width="120sp"
android:layout_height="130sp"
android:layout_centerHorizontal="true"
android:src="@drawable/flower"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="120sp"
android:text="Dont click me />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/clickable_txtView"
android:gravity="center"
android:paddingTop="140sp"
android:clickable="true"
android:text="Click me" />
</RelativeLayout>
@OnClick(R.id.clickable_txtView)
public void txtViewClick() {
//Some event
}
问题是我能够单击整个相对布局,并且在单击相对布局后会发生一些事件。 如何避免这种情况并将其仅限于 TextView 。
最佳答案
您的textview有一个属性android:paddingTop="140sp"
,它基本上包裹了整个相对布局,因此您遇到了onClick行为问题。
使用此RelativeLayout结构(为“不要点击我” TextView 提供ID,并将“可点击 TextView ”放在其下方。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<ImageView
android:layout_width="120sp"
android:layout_height="130sp"
android:layout_centerHorizontal="true"
android:src="@mipmap/ic_launcher"
android:layout_alignParentTop="true"
/>
<TextView
android:id="@+id/do_not_click"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="120sp"
android:enabled="false"
android:text="Dont click me" />
<TextView
android:id="@+id/clickable_txtView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center"
android:layout_below="@id/do_not_click"
android:text="Click me" />
</RelativeLayout>
关于java - 避免点击完整布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44514932/