2 yiranwujixian yiranwujixian 于 2012.09.17 15:21 提问

当移动滚动条时,ListView背景变黑

我已经创建了一个特殊的List,它包含了下边这些元素用来创建一个可以滚动的列表,这个列表的左侧的每一行包含一个图片,右侧包含一些文本:
从“root”布局开始

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:background="#C8C8C8"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
    android:divider="#C8C8C8"
    android:background="#C8C8C8"/>

然后在ListView中,我放置了下边的"row" item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/bg_row"
>
    <ImageView
        android:layout_width="wrap_content"
        android:paddingLeft="10px"
        android:paddingRight="15px"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:layout_height="wrap_content"
        android:src="@drawable/bg_image"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:textSize="16sp"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:maxHeight="50px"/>
</LinearLayout>

只要屏幕是静态的(没有滚动),它能够正确显示,但是当我开始通过背景的row-item(在代码中,一个“icon”能够显示出来)列表滚动的时候,它能够显示,但是背景的“root”布局将成为全黑...大多数时候,当滚动条停止的时候背景又将回到原来的颜色...当我测试的时候,我还在root-element添加了一个带有相同背景的TextView,当List滚动的时候,这将保留它的颜色...有人能解释为什么会发生这样的情况吗,怎么解决?

4个回答

suannai0314
suannai0314   2012.09.17 15:45
已采纳

在ListView Tag增加一个属性

android:cacheColorHint="#00000000"
niangzhi
niangzhi 如果你担心数字,或者使用android:cacheColorHint="@android:color/transparent"
大约 5 年之前 回复
yizhenbeifeng
yizhenbeifeng 如果你担心零点,android:cacheColorHint="#0000" 同样也能起作用
大约 5 年之前 回复
mansuifengqi
mansuifengqi this.getListView().setCacheColorHint(0); 我们不能通过布局设置颜色。但是我尝试着用上边的代码完成这件事。我已经在list activity的‘onCreate’中使用了这个代码。希望这个信息会有所帮助。
大约 5 年之前 回复
Sueyexin
Sueyexin   2012.09.18 10:59

你可以像这样用

list.setCacheColorHint(Color.TRANSPARENT);
list.requestFocus(0);
oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.10.10 18:32

android:cacheColorHint="#00000000"

u1254z62
u1254z62   2017.01.03 18:16

你可以像这样用

list.setCacheColorHint(Color.TRANSPARENT);
list.requestFocus(0);

Csdn user default icon
上传中...
上传图片
插入图片