Как сделать весь ListView кликабельным - PullRequest
0 голосов
/ 01 июля 2019

Как сделать весь ListView активным, а не элементы списка? Я хочу, чтобы триггер прослушивателя щелчка по всему списку просматривался даже при нажатии на элементы.

Я пытался создать элементы списка android:clickable="false", но безуспешно

Вот listView

<ListView
                android:id="@+id/unchecked_items"
                android:layout_width="match_parent"
                android:layout_height="300dp"
                android:layout_marginTop="8dp"
                android:clickable="true"
                android:focusable="true"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

и вот элемент ListView

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:clickable="false">

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:enabled="false"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:gravity="start"
        android:text="Name"
        android:textSize="12sp"
        app:layout_constraintBaseline_toBaselineOf="@+id/checkBox"
        app:layout_constraintEnd_toStartOf="@+id/cancel_button"
        app:layout_constraintHorizontal_bias="0.478"
        app:layout_constraintStart_toEndOf="@+id/checkBox" />

    <Button
        android:id="@+id/cancel_button"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/baseline_clear_24"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Поместите в свой элемент списка:

android:enabled="false"
android:focusable="false"

и добавьте его в свой список:

android:descendantFocusability="blocksDescendants"
1 голос
/ 01 июля 2019

В вашем пользовательском методе ArrayAdapter oEride isEnabled, как показано ниже

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

Это отключит клики на элементах списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...