Android: ListView Flicker эффект. Любые советы о том, как избавиться от этого? - PullRequest
6 голосов
/ 07 октября 2009

По какой-то причине, когда я прокручиваю свой список элементов, фон внутри моего списка исчезает и появляется снова, вызывая эффект «мерцания», который я на самом деле не хочу. Я попробовал предложение по адресу: Как сделать ListView прозрачным в Android? , но по какой-то причине он не работает. Есть предложения?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/screenLayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:background="@color/title_background"
            android:text="@string/whatsnew_title"
            >
        </TextView>
        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >
        </ListView>     
</LinearLayout>

Ответы [ 3 ]

21 голосов
/ 09 октября 2009

Вы включили android:cacheColorHint="#00000000"? Это самая важная часть предложенного исправления. Я только что попробовал ваш код (очевидно, не точное воспроизведение, поскольку вы используете ссылки на ресурсы, относящиеся к проекту) с ним, и он, кажется, работает.

Этот пост в блоге разработчиков Android должен вас заинтересовать.

2 голосов
/ 10 октября 2012

Этого также можно добиться со стороны Java (кода): listView.setCacheColorHint(Color.TRANSPARENT);

1 голос
/ 08 октября 2009

Проверьте ваш theme.xml на <item name="android:windowBackground">@null</item>. Если он у вас есть - удалите его. Я думаю, что один из популярных ресурсов приводит эту строку в качестве примера (вот как я получил мой).

...