Android listview 不再突出显示单击时的选择
Posted
技术标签:
【中文标题】Android listview 不再突出显示单击时的选择【英文标题】:Android listview no longer highlights selection onclick 【发布时间】:2011-10-28 11:30:47 【问题描述】:我有一个列表视图,当我触摸它们时,它在项目上显示为黄色。我所做的不同之处是更改该 listview xml 中的背景图像,现在它不再向我显示黄色
这里是代码
列表视图xml,它只是一个带有背景图像的文本视图:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:layout_
android:padding="10dp"
android:textSize="24sp"
android:textColor="#000000"
android:background="@drawable/bglistitem"
android:gravity="center_vertical|center_horizontal">
</TextView>
另一个布局中调用它的地方
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:layout_
android:padding="10dp"
android:textSize="24sp"
android:textColor="#000000"
android:background="@drawable/bglistitem"
android:gravity="center_vertical|center_horizontal">
</TextView>
这里是代码:
lv.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3)
);
正如你在上面看到的,我从来没有做任何会改变选择突出显示的默认行为的事情,为什么现在会有所不同,也许你看到了我没有看到的东西?
【问题讨论】:
【参考方案1】:当您向 ListView 添加新背景时,您会覆盖最有可能使用选择器根据状态为 ListItem 着色的 androids 默认背景。
尝试使用自定义选择器
创建一个 XML 文件 mycustombackground.xml,并将其添加到其中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/item_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/item_focused" />
<item android:drawable="@drawable/item_normal" />
</selector>
将@drawables 替换为与状态相关的您自己的。 然后将listview的背景设置为xml文件。
android:background="@drawable/mycustombackground"
您可能想查看 XML 以创建黄色,或者只是创建自己的图像。
【讨论】:
我想通了,感谢您的洞察力,帮助我缩小了可能性。事实证明,如果图像中有任何 alpha,那么黄色突出显示就会发生。如果您有不透明的图像,则它不会突出显示以上是关于Android listview 不再突出显示单击时的选择的主要内容,如果未能解决你的问题,请参考以下文章
Android:无需点击即可在Listview上设置焦点突出显示