我目前正在实现一个使用CheckedTextViews填充的ListView,并且一切都按照我想要的方式工作。除了一件事:我的ListView保持可聚焦状态,因此聚焦时它们周围的物品会在它们周围形成一个可怕的橙色边框。它还会更改令人讨厌的项目文本颜色。我尝试过使用SetItemsFocusable方法,但无济于事。我也覆盖了我的适配器类的isEnabled方法,但这使我无法检查和取消选中列表项选择。我想保留CheckedTextViews的功能,只是禁用它们的可聚焦性。我也试过让CheckedTextViews本身在他们的xml文件中不可聚焦,但这也没有用。是否有一些方法可以禁用整个ListView及其所有子节点的焦点而不会丧失其子节点的可检查性?我不希望ListView通过触摸或在键盘上滚动来获得焦点。非常感谢!
答案 0 :(得分:0)
您可以使用Drawable
在列表中的各个视图上设置透明的焦点StateListDrawable
。尝试使用@android:color/transparent
(显然是Drawable
)。
答案 1 :(得分:0)
我通常使用
m_listView.setSelector(drawable or resid);
实现它。
ps:我认为可怕的橙色来自许多来源,例如列表视图项目选择或项目聚焦或项目控制自我压缩/聚焦,所以也许它不能聚焦,但可怕的橙色也在那里。