1

我有一个带有布局的列表视图,该布局具有与主布局不同的背景颜色的嵌套布局。

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

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

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

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

在此处输入图像描述

这是带有嵌套布局的列表视图布局的一部分。

<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>

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

4

2 回答 2

7

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

这可能只是帮助某人。

于 2012-10-09T20:38:34.467 回答
0

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

执行此操作的 xml 是:

android:background="#E0EAF1"

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

于 2012-06-13T23:27:28.633 回答