java - 避免点击完整布局

标签 java android

我只希望 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行为问题。

enter image description here

使用此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>

enter image description here

关于java - 避免点击完整布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44514932/

相关文章:

java - 潮人 : Liquibase/Hibernate re-generate initial schema

java - 如何操作粘贴到 JTextField 中但不输入的文本?

java - readInt 和 readLine 在 Java 中制作基本的加法机

java - HttpURLconnection 与非 .com 网站的连接失败

android - Android NDK错误

android - 什么类型的谷歌地图 api 用于搜索特定地点,如医院

java - hibernate 问题

java - 如何使用 Kotlin 扩展 Java 类以像 static fun 一样使用?

android - RecyclerView notifyDataSetChanged 滚动到顶部位置

java - 如何在 Java 中进行后期绑定(bind)