Android как сделать подсветку View при нажатии? - PullRequest
38 голосов
/ 16 июля 2010

У меня линейный макет, в котором каждая строка раздувается программно, и я хочу, чтобы при щелчке по строкам они вели себя как ListViewТо есть я хочу, чтобы строка выделялась точно так же, как и по умолчанию в ListView.Как бы я поступил так?

Ответы [ 5 ]

57 голосов
/ 17 июля 2010

Хорошо, я наконец-то понял, как это сделать ... в основном это делается с помощью селектора, подобного селектору цвета, связанному по стилю, за исключением того, что вместо «цвета» используется рисование для состояний, и вы можете обратиться к списку по умолчанию. Drawable, который используется в ListView этим:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
    android:drawable="@android:drawable/list_selector_background" />      
</selector>

и использование этого xml в качестве фона для моего просмотра.

Все общедоступные списки по умолчанию можно найти здесь: http://developer.android.com/reference/android/R.drawable.html

22 голосов
/ 07 февраля 2012

Я смог сделать то же самое с текстовым представлением, которое я хотел вести себя как элемент списка, используя:

<Textview
....
android:background="@android:drawable/list_selector_background"
/>
2 голосов
/ 03 ноября 2014

если у вас все еще есть проблема с этим, пожалуйста, помните, что некоторые элементы пользовательского интерфейса не активируются (RelativeLayout), поэтому вам нужно добавить еще одну строку:

<RelativeLayout 
    ....
    android:clickable="true"
    ...
2 голосов
/ 16 июля 2010

Это может быть хорошим местом для начала поиска.

Хотя я бы посоветовал вам использовать сам ListView, а не реализовывать его снова.

1 голос
/ 10 февраля 2015

Для вашего списка установите свойство

android:listSelector="@color/test"

и этот тестовый цвет задайте любой прозрачный цвет, который вам нравится.Вы можете создать любой прозрачный цвет, используя hex прозрачный цвет

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