nid*_*iga 17 android focus imagebutton android-listview
我正在为Android TV开发一个应用程序.我有一个listview与ImageButton+ TextviewS作为孩子.由于电视不接受触摸事件但使用D-PAD或轨迹球遥控器,我必须关注所有可点击的项目,以便用户知道焦点在哪里.但问题是,如果我添加,我可以专注于列表行
android:descendantFocusability="blocksDescendants"
在自定义列表行布局中但ImageButton在列表行中将无法获得焦点.如果我删除上面的代码然后ImageButton获得焦点但我不能单击列表行.
此外,我增加setItemsCanFocus了我ListView,但没有运气,没有什么改变.我读了很多文件,但我找不到这个问题的正确答案.我希望专注于List行以及ImageButton.是否有可能,如果有人知道请帮帮我...
Rob*_*ood 21
我必须关注所有可点击的项目,以便用户知道焦点在哪里.但问题是,如果我添加,我可以专注于列表行
由于行文件中的多个视图而导致查看挂起,以获得单击您必须向行xml的主布局添加一个属性.
android:descendantFocusability="blocksDescendants
但是当我写上面的属性时,我无法关注我的行文件中的ImageButton.
我只是想一个办法acheive获得的foucus ImageButton以及对listview.
要专注于ImageButton:
android:focusableInTouchMode="true"到ImageButton.要关注Listview:
android:descendantFocusability="blocksDescendants到行xml中的main-layout.现在当你点击你的ImageButton时,它会聚焦你想要的颜色,即使它也会专注于listview点击.
Selecotor.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>
Run Code Online (Sandbox Code Playgroud)
在S3模拟器中测试,效果很好.
我之前遇到过同样的问题.我通过添加(解决xml中的布局)解决了我的问题
android:focusableInTouchMode="true"
android:clickable="true"
Run Code Online (Sandbox Code Playgroud)
所以我的问题得到了解决.
注意:仅添加android:focusableInTouchMode ="true"不起作用,必须在focusableInTouchMode为true后使布局可单击为true.
| 归档时间: |
|
| 查看次数: |
12708 次 |
| 最近记录: |