`
yangwei0915
  • 浏览: 464365 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android TV开发中GridView中RadioButton的问题

 
阅读更多

在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>

 

分享到:
评论

相关推荐

    GridView实现RadioButton单选效果

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册或菜单的界面。GridView的一个常见需求是实现单选效果,即用户每次只能选择一个项目。本篇文章将深入探讨...

    Android代码-TV端GridView焦点移动事件处理.rar

    在Android开发中,电视端(TV)应用设计是不可或缺的一部分,尤其在智能家居和娱乐系统日益普及的今天。针对TV端的应用,用户主要通过遥控器进行交互,因此焦点管理显得尤为重要。GridView作为Android中的一个布局...

    ASP.NET GridView中加入RadioButton不能单选的解决方案

    在***开发中,GridView是一个常用于显示数据表格的服务器控件,它提供了行数据的展示以及内置的编辑、分页和排序功能。在设计用户界面时,开发者可能会需要在GridView中添加单选按钮(RadioButton)来提供一些用户...

    嵌套的在GridView里的radiobutton 怎么才能只选中一个_asp_net(c#)

    在ASP.NET(C#)开发中,经常会遇到需要在GridView控件中使用RadioButton来实现单选功能的需求。然而,默认情况下,GridView中的每个单元格都包含独立的RadioButton,并不会自动实现仅能选择一个RadioButton的功能。...

    android Gridview分页实现

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...

    Android最简单的gridview嵌套gridview,解决滑动冲突问题

    在Android开发中,有时我们需要展示的数据结构比较复杂,可能需要在一个列表中展示多个子列表,这时就出现了GridView的嵌套需求。本主题聚焦于如何在Android应用中实现一个"最简单的gridview嵌套gridview"的场景,并...

    android中ListView嵌套GridView的使用

    在Android开发中,ListView和GridView是两种常用的布局控件,它们各自有其特定的应用场景。ListView主要用于展示大量的可滚动数据,而GridView则呈现一个固定的网格布局。然而,在某些情况下,我们可能需要在一个...

    Android 点击ListView 或GridView 的一个item 使其里面textview变色

    Android 点击ListView 或GridView 的一个item 使其里面textview变色 详情可访问博客地址:http: blog csdn net gaolei1201 article details 39084159

    Android 流式布局实现GridView中item合并

    在Android开发中,有时我们需要创建一个布局,其中的元素可以根据屏幕尺寸动态调整排列方式,以达到类似瀑布流或网格的效果。在这种情况下,流式布局(FlowLayout)就能派上用场,尤其是在实现GridView中item的合并...

    Android高级应用源码-TV端GridView焦点移动事件处理.zip

    在Android开发中,TV端应用的设计与手机应用有所不同,特别是在用户交互方面。此资源包"Android高级应用源码-TV端GridView焦点移动事件处理.zip"主要关注的是如何在电视设备上处理GridView的焦点移动事件,这对于...

    Android中GridView以表格形式显示多张图片(仿桌面)

    在Android开发中,GridView是一种非常常用的控件,它允许我们以网格的形式展示数据,通常用于显示多张图片、图标或者列表项。这个话题是关于如何在Android应用中使用GridView来实现一个类似桌面的布局,展示多张图片...

    Android TV 上使用的RecyclerView和焦点框架,焦点框移动效果,完胜androidTvwidget的MainUpView

    在Android TV中,`RecyclerView`通常用于创建滚动列表或网格布局,以展示频道、节目或任何其他类型的内容。与传统的`ListView`相比,`RecyclerView`提供了更强大的功能,如更好的性能、内存管理以及自定义动画和布局...

    Android书架(自定义GridView)

    在Android开发中,"Android书架(自定义GridView)"是一个常见的应用场景,通常用于实现类似电子书库或图书展示的功能。书架效果是通过自定义GridView来达成的,因为GridView是一种可以灵活展示多行多列数据的视图...

    Android开发 ExpandableListView嵌套GridView的实现

    在Android开发中,有时我们需要展示层次结构复杂的数据,这时`ExpandableListView`就显得非常有用。它可以以折叠/展开的方式显示列表,而嵌套`GridView`则可以让我们在一个子组内展示多列数据。本文将深入探讨如何在...

    Android可拖拽的GridView

    在Android开发中,GridView是一种常见的布局管理器,它允许我们以网格的形式展示数据集,通常用于创建类似照片库、应用列表等界面。本教程将深入探讨如何实现一个可拖拽的GridView,它不仅具有基本的展示功能,还带...

    Android应用开发-GridView控件.pptx

    在Android应用开发中,GridView控件是一个非常重要的组成部分,它允许开发者以行列的形式展示大量数据,比如图片、图标或其他UI组件。GridView与ListView虽然都用于显示列表数据,但它们的展示方式有所不同。...

    android中ExpandableListView嵌套GridView的使用

    在Android开发中,有时我们需要展示层次结构复杂的数据,这时`ExpandableListView`和`GridView`的组合使用就显得尤为重要。`ExpandableListView`允许我们显示可展开和折叠的列表项,而`GridView`则用于展示网格布局...

    Android 可拖拽 排序 GridView

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个"Android 可拖拽 排序 GridView"的示例项目,是针对如何实现一个用户可以手动拖动元素来改变GridView中元素顺序的功能进行的...

    android 九宫格 GridView

    在Android开发中,GridView是一种非常常见的控件,用于展示数据集,通常以网格的形式排列,非常适合用来实现九宫格布局。九宫格是用户界面设计中常见的一种布局方式,尤其在应用启动页、设置菜单或者功能选择界面中...

    Android自定义Dialog显示GridView

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者为用户提供更为个性化和交互丰富的界面。本主题将深入探讨如何创建一个自定义Dialog,并在其中显示一个GridView,以实现更灵活的数据展示。以下是对这...

Global site tag (gtag.js) - Google Analytics