Список Android больше не выделяет выделение на клике - PullRequest
11 голосов
/ 17 августа 2011

У меня есть список, который отображал желтые оттенки на предметах, когда я к ним прикасался.Все, что я сделал по-другому, это изменил фоновое изображение в этом XML-списке, и теперь он больше не будет отображать мне yellowtint

Вот код

XML-представление списка, это простоtextview с фоновым изображением:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

место в другом макете, где оно называется

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

, и вот код:

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {}
});

как выВы можете видеть выше, я никогда не делал ничего такого, что изменило бы поведение подсветки выделения по умолчанию, почему это теперь будет другим, возможно, то, что вы видите, чего я не вижу?

1 Ответ

20 голосов
/ 17 августа 2011

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

Попробуйте использовать пользовательский селектор

Создайте файл XML, mycustombackground.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="@drawable/item_pressed" /> 
   <item android:state_focused="true"
      android:drawable="@drawable/item_focused" /> 
   <item android:drawable="@drawable/item_normal" /> 
 </selector>

Замените @drawable своими собственными в зависимости от состояния.Затем установите фон вашего списка в XML-файл.

android:background="@drawable/mycustombackground" 

Возможно, вы захотите взглянуть на XML, чтобы создать желтый цвет, или просто создать собственное изображение.

...