在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是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册或菜单的界面。GridView的一个常见需求是实现单选效果,即用户每次只能选择一个项目。本篇文章将深入探讨...
在Android开发中,电视端(TV)应用设计是不可或缺的一部分,尤其在智能家居和娱乐系统日益普及的今天。针对TV端的应用,用户主要通过遥控器进行交互,因此焦点管理显得尤为重要。GridView作为Android中的一个布局...
在***开发中,GridView是一个常用于显示数据表格的服务器控件,它提供了行数据的展示以及内置的编辑、分页和排序功能。在设计用户界面时,开发者可能会需要在GridView中添加单选按钮(RadioButton)来提供一些用户...
在ASP.NET(C#)开发中,经常会遇到需要在GridView控件中使用RadioButton来实现单选功能的需求。然而,默认情况下,GridView中的每个单元格都包含独立的RadioButton,并不会自动实现仅能选择一个RadioButton的功能。...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...
在Android开发中,有时我们需要展示的数据结构比较复杂,可能需要在一个列表中展示多个子列表,这时就出现了GridView的嵌套需求。本主题聚焦于如何在Android应用中实现一个"最简单的gridview嵌套gridview"的场景,并...
在Android开发中,ListView和GridView是两种常用的布局控件,它们各自有其特定的应用场景。ListView主要用于展示大量的可滚动数据,而GridView则呈现一个固定的网格布局。然而,在某些情况下,我们可能需要在一个...
Android 点击ListView 或GridView 的一个item 使其里面textview变色 详情可访问博客地址:http: blog csdn net gaolei1201 article details 39084159
在Android开发中,有时我们需要创建一个布局,其中的元素可以根据屏幕尺寸动态调整排列方式,以达到类似瀑布流或网格的效果。在这种情况下,流式布局(FlowLayout)就能派上用场,尤其是在实现GridView中item的合并...
在Android开发中,TV端应用的设计与手机应用有所不同,特别是在用户交互方面。此资源包"Android高级应用源码-TV端GridView焦点移动事件处理.zip"主要关注的是如何在电视设备上处理GridView的焦点移动事件,这对于...
在Android开发中,GridView是一种非常常用的控件,它允许我们以网格的形式展示数据,通常用于显示多张图片、图标或者列表项。这个话题是关于如何在Android应用中使用GridView来实现一个类似桌面的布局,展示多张图片...
在Android TV中,`RecyclerView`通常用于创建滚动列表或网格布局,以展示频道、节目或任何其他类型的内容。与传统的`ListView`相比,`RecyclerView`提供了更强大的功能,如更好的性能、内存管理以及自定义动画和布局...
在Android开发中,"Android书架(自定义GridView)"是一个常见的应用场景,通常用于实现类似电子书库或图书展示的功能。书架效果是通过自定义GridView来达成的,因为GridView是一种可以灵活展示多行多列数据的视图...
在Android开发中,有时我们需要展示层次结构复杂的数据,这时`ExpandableListView`就显得非常有用。它可以以折叠/展开的方式显示列表,而嵌套`GridView`则可以让我们在一个子组内展示多列数据。本文将深入探讨如何在...
在Android开发中,GridView是一种常见的布局管理器,它允许我们以网格的形式展示数据集,通常用于创建类似照片库、应用列表等界面。本教程将深入探讨如何实现一个可拖拽的GridView,它不仅具有基本的展示功能,还带...
在Android应用开发中,GridView控件是一个非常重要的组成部分,它允许开发者以行列的形式展示大量数据,比如图片、图标或其他UI组件。GridView与ListView虽然都用于显示列表数据,但它们的展示方式有所不同。...
在Android开发中,有时我们需要展示层次结构复杂的数据,这时`ExpandableListView`和`GridView`的组合使用就显得尤为重要。`ExpandableListView`允许我们显示可展开和折叠的列表项,而`GridView`则用于展示网格布局...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个"Android 可拖拽 排序 GridView"的示例项目,是针对如何实现一个用户可以手动拖动元素来改变GridView中元素顺序的功能进行的...
在Android开发中,GridView是一种非常常见的控件,用于展示数据集,通常以网格的形式排列,非常适合用来实现九宫格布局。九宫格是用户界面设计中常见的一种布局方式,尤其在应用启动页、设置菜单或者功能选择界面中...
在Android开发中,自定义Dialog是一种常见的需求,它允许开发者为用户提供更为个性化和交互丰富的界面。本主题将深入探讨如何创建一个自定义Dialog,并在其中显示一个GridView,以实现更灵活的数据展示。以下是对这...