滚动上的Listview布局背景颜色闪烁在图像加载时消失?

时间:2012-06-13 02:33:51

标签: android android-layout

我有一个listview,其布局有一个嵌套布局,背景颜色与主布局不同。

在这个嵌套布局中是一个imageview。每当图像加载到视图中时,此嵌套布局的背景颜色就会消失。在滚动列表视图之前,背景不会返回。

同样,当滚动列表视图时,再次绘制图像视图中的图像,此序列再次发生,这使列表具有闪烁效果。

我已经尝试在主布局和嵌套布局上设置cacheColorHint属性,但它似乎没有改变。

这是加载图像/滚动时发生的事情的示例图像。如您所见,底部两个项目的背景颜色已消失,其余部分仍然具有背景颜色。

enter image description here

以下是带有嵌套布局的listview布局的一部分。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/race_entrant"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingTop="2dip"
android:paddingBottom="2dip"
android:paddingRight="2dip"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants"
android:cacheColorHint="#E0EAF1">
<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="50dip"
    android:orientation="vertical"
    android:id="@+id/linearLeft"
    android:paddingLeft="2dip"
    android:paddingRight="2dip"
    android:paddingTop="2dip"
    android:paddingBottom="2dip"
    android:background="#E0EAF1"
    android:cacheColorHint="#E0EAF1">
    <TextView
        android:id="@+id/txtEntrantNo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/entrant_number"
        android:layout_gravity="center_horizontal"
        android:cacheColorHint="#E0EAF1" />
        <ImageView
            android:id="@+id/imgJockey"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="1dip"
            android:adjustViewBounds="true"
            android:cacheColorHint="#E0EAF1" />
</LinearLayout>

如何阻止嵌套布局的背景颜色像这样消失?

2 个答案:

答案 0 :(得分:7)

这解决了我的问题:listView.setCacheColorHint(Color.TRANSPARENT);

这可能只对某人有帮助。

答案 1 :(得分:0)

我设法通过设置imageview的背景颜色来实现这一点。

执行此操作的xml是:

android:background="#E0EAF1"

现在加载图像时,背景颜色不会改变。