Прокрутка списка изменяет все от белого до Черного [дубликат]
этот вопрос уже есть ответ здесь:
- Фон ListView становится черным при прокрутке 11 ответов
у меня есть пользовательский вид списка, и я хочу, чтобы фон списка был белым, поэтому я делаю что-то вроде этого, что отлично работает.
listView = (ListView) this.findViewById(R.id.listview);
listView.setBackgroundColor(Color.WHITE);
проблема в том, что при прокрутке списка фон всех список товаров меняется на черный, что выглядит ужасно.
Я попытался в моем представлении списка установить цвет фона на белый. Когда я раздуваю вид, я также попытался установить цвет фона на белый:
view.setBackgroundColor(Color.WHITE);
оба из них устраняют проблему прокрутки цвета фона, но теперь элемент не кажется интерактивным, даже если это так. Я имею в виду, что onClick по-прежнему работает нормально, но фон не мигает оранжевым, чтобы пользователь знал, что он нажал оно.
Как я могу иметь белый фон в виде списка, который остается белым при прокрутке, и делает обычный список деятельности оранжевую кнопку фон?
спасибо!
5 ответов:
решение очень простое, вам также нужно установить подсказку цвета кэша на белый:
setCacheColorHint(Color.WHITE)
. Вам не нужно изменять цвет фона элементов списка.
решение очень простое, вам также нужно установить подсказку цвета кэша на черный в xml.
android:cacheColorHint="#000000"
Android пытается улучшить производительность прокрутки ListView путем кэширования информации о макете. Если у вас есть длинные списки прокрутки данных, вы также должны установить свойство android:cacheColorHint в объявлении ListView в определении AXML действия (к тому же значению цвета, что и фон вашего пользовательского макета строк). Отказ включить эту подсказку может привести к "мерцанию", когда пользователь прокручивает список с пользовательскими цветами фона строки. Так дайте такой же цвет к фон listitem и android: cacheColorHint.вы можете сослаться ниже код.
в моем макете адаптера я дал как
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ADAPTER_CONTAINER_PRIMARY" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FAFAEE" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:gravity="center"> .....
и в виде списка
<ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/LIST_GRID_LIST_INSTANCES" android:focusableInTouchMode="true" android:smoothScrollbar="true" android:divider="@drawable/Gray" android:dividerHeight="0.05dp" android:cacheColorHint="#FAFAEE" android:background="@drawable/round"/>
Если
ListView
рисуется поверх более сложного фона-скажем, растрового изображения или градиента-тогда вам может потребоваться полностью отключить кэш прокрутки. Я в конечном итоге настройкиandroid:scrollingCache="false"
наListView
чтобы решить эту проблему.http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:scrollingCache