Сделайте линейную компоновку, выбранную как элемент списка в виде списка (Android)

Я знаю, как добавить слушателя onClick в LinearLayout, чтобы сделать весь макет кликом, но я бы хотел, чтобы LinearLayout был подсвечен при использовании как элемент списка в виде списка. Каков наилучший способ сделать это?

Solutions Collecting From Web of "Сделайте линейную компоновку, выбранную как элемент списка в виде списка (Android)"

Я предпочитаю более простой способ:

<LinearLayout android:orientation="vertical" android:id="@+id/layoutIdentifier" android:clickable="true" android:background="?android:attr/selectableItemBackground" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- put views here --> </LinearLayout> 

Таким образом, вы не можете изменить фон с нажатыми состояниями, но иногда вам это действительно не нужно.

Я столкнулся с этим, и это то, с чем я столкнулся. В своем макете установите фон в ресурс, который можно выделить:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/clickable_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/clickable"> ... </LinearLayout> 

Затем в drawable добавьте clickable.xml так:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@android:drawable/list_selector_background" /> </selector> 

Тогда вам решать, хотите ли вы добавить обработчик кликов в свою деятельность.

Вы можете установить все элементы внутри макета clickable = false. Затем вы должны имитировать поведение выбора, установив макет фона на какой-то цвет и установите все остальные, при этом фон будет прозрачным при щелчке по макету. Вы можете использовать идентификатор макета в качестве индекса, чтобы узнать, какой макет выбран.