在 android 中禁用根视图的响应

Disable response of root view in android

我有一个有几行的 ListView。每行由 7 TextViews 组成,它们对 onClick() 事件作出反应。

这一切都很好,但是当用户点击行的边缘时,没有 TextView 捕捉到 onClick() 事件,root view - LinearLayout - 得到突出显示

这当然是正常行为,但由于单击此处没有任何反应,我不想突出显示线性布局。 有什么方法可以禁用此行为继续捕获 onClick() 事件 TextViews?

(onClick 侦听器在适配器 getView() 方法中设置)

这里是 xml 文件的一些摘录。正如大家所看到的,我已经尝试了一些方法,但它们不起作用。

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

    android:longClickable="false"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false">


    <TextView
        android:id="@+id/listelement_weekoverview_tv_mo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:background="@drawable/weeklylist_rndrectangle"
        android:gravity="center_horizontal"
        android:singleLine="false"
        android:textColor="@color/appcolor_red_base" />

        ...
</LinearLayout>

未点击版本 点击版本

我找到了解决办法。

只需像这样在您的自定义适配器中覆盖 isEnabled (int position) 方法:

@Override
public boolean isEnabled (int position) {
    return false;
}