我有一个listview,其布局有一个嵌套布局,背景颜色与主布局不同。
在这个嵌套布局中是一个imageview。每当图像加载到视图中时,此嵌套布局的背景颜色就会消失。在滚动列表视图之前,背景不会返回。
同样,当滚动列表视图时,再次绘制图像视图中的图像,此序列再次发生,这使列表具有闪烁效果。
我已经尝试在主布局和嵌套布局上设置cacheColorHint属性,但它似乎没有改变。
这是加载图像/滚动时发生的事情的示例图像。如您所见,底部两个项目的背景颜色已消失,其余部分仍然具有背景颜色。
以下是带有嵌套布局的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>
如何阻止嵌套布局的背景颜色像这样消失?
答案 0 :(得分:7)
这解决了我的问题:listView.setCacheColorHint(Color.TRANSPARENT);
这可能只对某人有帮助。
答案 1 :(得分:0)
我设法通过设置imageview的背景颜色来实现这一点。
执行此操作的xml是:
android:background="#E0EAF1"
现在加载图像时,背景颜色不会改变。