在android 的TV开发中,有时候需要在GridView或ListView中每行显示RadioGroup,RadioGroup中包含RadioButton,又需要设置RadioButton的选择图标我们会写如下代码:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/radio_checked" android:state_checked="true" /> <item android:drawable="@mipmap/radio_hover" android:state_focused="true" /> <item android:drawable="@mipmap/radio_hover" android:state_selected="true" /> <item android:drawable="@mipmap/radio_checked" android:state_pressed="true" /> <item android:drawable="@mipmap/radio_uncheck" android:state_selected="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_checked="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_focused="false" /> <item android:drawable="@mipmap/radio_uncheck" /> </selector>
这样在电视上(盒子或电视上,模拟器上没有这个问题),会发现ListView或GridView的第一行中RadioGroup下面的RadioButton全部被选中,这是因为如果ListView将焦点优先权给了子View时,ListView中的第一行中的元素就会被选中,我们修改代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/radio_checked" android:state_pressed="true" /> <item android:drawable="@mipmap/radio_hover" android:state_focused="true" /> <item android:drawable="@mipmap/radio_checked" android:state_checked="true" /> <item android:drawable="@mipmap/radio_uncheck" android:state_selected="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_checked="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_focused="false" /> <item android:drawable="@mipmap/radio_uncheck" /> </selector>
这样上面的问题解决了,又会发现一个新问题,当RadioButton按下时,显示checked的图标,当松开时,就会显示获取焦点的图标,而不是check的图标,只有当这个RadioButton失去焦点时,才又会显示checked的图标,修改代码如下,就没有问题了:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/radio_checked" android:state_checked="true" /> <item android:drawable="@mipmap/radio_checked" android:state_pressed="true" /> <item android:drawable="@mipmap/radio_hover" android:state_focused="true" /> <item android:drawable="@mipmap/radio_uncheck" android:state_selected="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_checked="false" /> <item android:drawable="@mipmap/radio_uncheck" android:state_focused="false" /> <item android:drawable="@mipmap/radio_uncheck" /> </selector>
相关推荐
android Gridview分页实现的一个小例子
主要介绍了ASP.NET GridView中加入RadioButton不能单选的解决方案,希望大家阅读完本文有所收获。
TV端GridView焦点移动事件处理.rar
android中ListView嵌套GridView的使用
在android tv开发中最方便快捷的开发库,一两行代码搞定获取得焦点效果,列表移动框边缘拦截,事件处理
android中ExpandableListView嵌套GridView的使用
RadioButton不能分行显示,用GridView简单实现分行单选
嵌套的在GridView里的radiobutton 怎么才能只选中一个_asp_net(c#)
Android书架(自定义GridView),可运行,亲测。
Android 点击ListView 或GridView 的一个item 使其里面textview变色 详情可访问博客地址:http: blog csdn net gaolei1201 article details 39084159
Android可拖拽的GridView,效果还可以,带拖动动画,convertView复用
Android中GridView以表格形式显示多张图片(仿桌面),详细了解请移步http://blog.csdn.net/zxc514257857/article/details/70478537
Android高级应用源码-TV端GridView焦点移动事件处理.zip
android-ListView内嵌GridView
gridview嵌套gridview实现内部gridview不显示完,可滑动,外部也可滑动,解决滑动冲突问题。适用于多种嵌套,listview,scrollview等。
使用流式布局实现GridView中item的合并,可满足项目中UI的设计,代码使用非常简单,可供参考
ExpandableListView嵌套GridView的实现,
自己写的android上的用来自定义Dialog,用自定义的Dialog来显示GridView。我也有些一个和这个相应的博客,有兴趣的可以去我的博客看下。
Android应用开发