我创建了一个特定的List,它存在于以下元素之外,用于创建一个可滚动的列表,每行包含左侧的Image和右侧的一些文本:
首先是“根”布局:
<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"/>
</LinearLayout>
然后在ListView中我放置以下“行”项:
<?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>
只要屏幕静态显示(没有移动)就会正确显示,但是当我开始滚动列表时,行项目的背景(代码中显示的"icon")将正确显示但是"root"布局的背景将变成完全黑色...当滚动停止时,背景将会大部分时间恢复其颜色......当我测试时我也在该根元素中添加了 TextView
背景,当滚动列表时,这个将保留它的颜色...任何想法为什么会发生这种情况,以及如何解决这个问题?
11 回答
以下对我有用:
我在
listView
中使用图像,有时在三星s4中变黑,甚至没有滚动 . 这是我在适配器中完成的一个愚蠢的错误 . 我只是将我的视图置于null以解决此问题在你的xml中使用
Listview
设置我们有很多选项可以解决这个问题,你可以通过编程来设置背景透明
或通过xml
android:cacheColorHint="#00000000"// setting transparent color
要么
不要设置
listview
的背景 .你可以像这样使用:
在布局文件中使用此行非常简单:
像这样:
这个问题有很多答案,但今天我意识到这个问题仍然缺少一个重要的信息 .
这个问题有两种可能的解决方案,两种方法都有效,但每种方法都应该用于不同的情况 .
Methods
当
ListView
具有纯色背景时,请使用android:cacheColorHint
.当
ListView
具有(复杂)图像作为背景时,请使用android:scrollingCache
.注意
当
ListView
具有纯色背景时,两种方法都可以使用,因此不仅cacheColorHint
将起作用 . 但是不建议将scrolingCache
方法用于纯色背景,因为它会关闭用于平滑动画和滚动ListView的优化方法 .Note for the note:
scrolingCache
设置为false并不一定意味着ListView
的动画,滚动会变慢 .在
ListView
标记上添加属性有关详细信息,请查看this blog