首页 > 解决方案 > 包含 ImageView 和 TextView 时,Android 布局不可点击

问题描述

我有如下布局。共有五个类似的选项卡。当我在代码中将 onClickListener 设置为 LinearLayout tab_dashboard 时,没有任何触发。我还必须将单击侦听器设置为 ImageButton 和 TextView 以使整个区域可单击。我试图设置所有子项 clickable="false" 和 duplicateParentState="true",没有运气。我还尝试将 ImageButton 更改为 ImageView,同样的问题。有人对此有想法吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/tab_dashboard"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/white"
        android:gravity="center"
        android:orientation="vertical">

        <ImageButton
            android:id="@+id/dashboard_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@android:color/white"
            android:src="@drawable/ic_dashboard" />

        <TextView
            android:id="@+id/dashboard_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="@string/dashboard"
            android:textSize="10sp" />

    </LinearLayout>

    <!-- Four more similar tabs -->

</LinearLayout

标签: androidandroid-layoutclickableandroid-imagebutton

解决方案


我通过用其他实现相同效果的方式替换 android:layout_width="0dp" 和 android:layout_weight="1" 解决了这个问题。我猜 android:layout_width="0dp" 可能是这个问题的原因。以后会做更多的调查。


推荐阅读