我通过数据库和listview通过数据库中的dailogfragment删除项目。我能够从列表视图中删除数据库中的项目,并能够从列表视图中删除已删除的项目来刷新列表。
但问题是我在删除项目后立即获得某种类型的黑条(已删除项目背后的背景):http://i733.photobucket.com/albums/ww331/suntuu/Capture-1.png
在图像中你可以看到我的默认背景是白色(theme.holo.light),但在删除后,这个黑色背景会弹出。
当我再次执行listview片段时,它会消失。
我很长时间以来都坚持这个。
这是我的xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:cacheColorHint="#00000000"
style="@style/AndroDev"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dividerHeight="2dp"
android:paddingBottom="1dp"
android:paddingTop="1dp" />
</LinearLayout>
这是我的风格/ androdev:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AndroDev" parent="@android:style/Theme.Holo.Light">
<item name="android:background">#F7F7F7</item>
</style>
</resources>
更新
从我的listviee中删除样式后,这个问题似乎已经消失,但后来我仍然坚持使用列表项目背景的默认背景,我想要自定义。
那我怎么能实现呢。
答案 0 :(得分:0)
试试这个:
在包含ListView的主XML中,
只需在XML中将以下属性添加到ListView: -
android:cacheColorHint="#00000000"
答案 1 :(得分:0)
我也面临同样的问题,在活动解决了它的listview实例下面添加了以下行
listView = (ListView)findViewById(R.id.listViewMain);
listView.setCacheColorHint(Color.TRANSPARENT); // add this line in your code
答案 2 :(得分:0)
所以我已经解决了。问题是使用我自己的样式来获取listview项的自定义背景,这是不对的。
所以我使用这个实现了listview行的自定义背景: ListView item background via custom selector