Reputation: 402
How to make the whole ListView clickable and not list items? I want the whole listview click listener trigger, even when clicking on items.
I tried to make listview items android:clickable="false"
but without any success
Here is 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" />
and here is ListView item
<?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>
Upvotes: 0
Views: 96
Reputation: 217
Put in your listview item:
android:enabled="false"
android:focusable="false"
and add this on your Listview:
android:descendantFocusability="blocksDescendants"
Upvotes: 1
Reputation: 107
In your custom ArrayAdapter overide isEnabled method as following
@Override
public boolean isEnabled(int position) {
return false;
}
This will disable clicks on listview items.
Upvotes: 1