Android:ListView 闪烁效果。关于如何摆脱这个的任何提示?

Posted

技术标签:

【中文标题】Android:ListView 闪烁效果。关于如何摆脱这个的任何提示?【英文标题】:Android: ListView Flicker effect. Any hints on how to get rid of this? 【发布时间】:2010-12-04 17:43:51 【问题描述】:

出于某种原因,每当我滚动浏览我的项目列表时,我的列表视图中的背景都会消失并重新出现,从而产生我并不真正想要的“闪烁”效果。我在How to make a ListView transparent in android? 尝试过这个建议,但由于某种原因它不起作用。有什么建议吗?

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

【问题讨论】:

【参考方案1】:

检查您的 theme.xml 中的 &lt;item name="android:windowBackground"&gt;@null&lt;/item&gt;。如果你有 - 删除它。我认为其中一个流行的资源以这条线为例(这就是我得到我的方式)。

【讨论】:

我其实没有自定义的theme.xml。你是在建议我创建一个吗? 您可以尝试一下 - 我的首选项屏幕(即 ListView)也有类似的问题,但后来 - 我确实有自定义 theme.xml 和我在答案中的条目【参考方案2】:

您是否添加了android:cacheColorHint="#00000000"?这是建议修复中最重要的部分。我刚刚尝试了您的代码(显然不是精确复制,因为您使用的是对项目特定资源的引用),它似乎可以工作。

This post on the Android Developers blog 应该是你感兴趣的。

【讨论】:

太棒了...你不会相信我...我尝试附加 cacheColorHint 但我发现的每个资源都说 android:cacheColorHint="#000000" (注意零的数量显然没有说明 alpha )...现在它完全按照我的意愿工作了...非常感谢!【参考方案3】:

这也可以从Java(代码)端实现:listView.setCacheColorHint(Color.TRANSPARENT);

【讨论】:

以上是关于Android:ListView 闪烁效果。关于如何摆脱这个的任何提示?的主要内容,如果未能解决你的问题,请参考以下文章

Android中ListView异步加载图片错位重复闪烁问题分析及解决方案

Android:将数据添加到 ArrayAdapter 时可见的 ListView 图像闪烁

Android使用EditText+Listview实现搜索效果(使用room模糊查询)

Android使用EditText+Listview实现搜索效果(使用room模糊查询)

Android使用EditText+Listview实现搜索效果(使用room模糊查询)

WinForm防止界面闪烁