列表视图行为dillemna

时间:2012-02-12 18:27:37

标签: android listview android-listview adapter

我目前正在实现一个使用CheckedTextViews填充的ListView,并且一切都按照我想要的方式工作。除了一件事:我的ListView保持可聚焦状态,因此聚焦时它们周围的物品会在它们周围形成一个可怕的橙色边框。它还会更改令人讨厌的项目文本颜色。我尝试过使用SetItemsFocusable方法,但无济于事。我也覆盖了我的适配器类的isEnabled方法,但这使我无法检查和取消选中列表项选择。我想保留CheckedTextViews的功能,只是禁用它们的可聚焦性。我也试过让CheckedTextViews本身在他们的xml文件中不可聚焦,但这也没有用。是否有一些方法可以禁用整个ListView及其所有子节点的焦点而不会丧失其子节点的可检查性?我不希望ListView通过触摸或在键盘上滚动来获得焦点。非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Drawable在列表中的各个视图上设置透明的焦点StateListDrawable。尝试使用@android:color/transparent(显然是Drawable)。

这帮助了我:http://blog.stylingandroid.com/archives/55

答案 1 :(得分:0)

我通常使用

m_listView.setSelector(drawable or resid);

实现它。

ps:我认为可怕的橙色来自许多来源,例如列表视图项目选择或项目聚焦或项目控制自我压缩/聚焦,所以也许它不能聚焦,但可怕的橙色也在那里。