我必须关注所有可点击的项目,以便用户知道焦点在哪里。但问题是如果我添加我可以专注于列表行
由于行文件中的多个视图而导致视图挂起,要单击您必须在行 xml 的主布局中再添加一个属性。
android:descendantFocusability="blocksDescendants
但是当我写上面的属性时,我无法关注我的行文件中的 ImageButton。
我只是尝试了一种方法来获得关注ImageButton
和关注listview
。
要专注于 ImageButton:
- 创建一个选择器文件。
- 应用于图像按钮。
- 添加
android:focusableInTouchMode="true"
到图像按钮。
要专注于 Listview:
- 添加
android:descendantFocusability="blocksDescendants
到行 xml 中的主布局。
现在,当您单击 ImageButton 时,它会聚焦于您想要的颜色,即使它也会聚焦于 listview 单击。
选择器.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="@android:color/transparent"
/> <!-- pressed -->
<item
android:state_focused="true"
android:drawable="@android:color/darker_gray"
/> <!-- focused -->
<item
android:drawable="@android:drawable/btn_star"
/> <!-- default -->
</selector>
在 S3 模拟器中测试,运行良好。