android 盒子 TV CheckBox 的三种状态

2024-06-11 16:38

本文主要是介绍android 盒子 TV CheckBox 的三种状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

android开发这么久了,发现这么基础的问题实在脸红 好吧 ,,,,首先看下三张图片

                     

这个android 页面是跑在 TV上的  所以 记住密码CheckBox 有 如图三个 状态  1普通状态 2获取焦点状态 3选中状态

三个状态的样式 写了很长的时间  碰到的坑也很多,,,怪就怪在自己平时懂的东西太少了,,,,,

不罗嗦了,,,,看xml 的 样式 

 
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--这里的样式是有优先级的 第一个item的优先级最高 依次往下推-->
    <!--选中且有焦点-->
    <item android:drawable="@drawable/remember_select" android:state_checked="true" android:state_focused="true"/><!--没有选中但是有焦点-->
    <item android:drawable="@drawable/remember_press"  android:state_checked="false" android:state_focused="true"/><!--选中但没有焦点-->
    <item android:drawable="@drawable/remember_select" android:state_checked="true"  android:state_focused="false"/><!--其他-->
    <item android:drawable="@drawable/remember_normal"/>
</selector>  
 

问题一 : 这里要明确一个 选中 和 焦点 是两回事 ,,焦点是遥控器焦点刚刚好在这个点上 。选中是 遥控器到这个点按下确认 才选选中 当焦点移走时,他还是选中的状态(只要你在当前焦点 没有重新按下确认键),


问题追加 : 用户选中后保持持久状态图片 android:state_selected="true"

     <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   
    <item android:drawable="@drawable/disarming_on_xx"  android:state_selected="true"/>
    
    <item android:drawable="@drawable/disarming_focus_xx" android:state_focused="true" />
    
    <item android:drawable="@drawable/disarming_xx" />
    
</selector>

    上面的xml文件 android:state_selected="true"必须在java代码 设置true或false 才有效 

    例如 :imageView1.setSelected(true); 

                 imageView2.setSelected(false); 

                 imageView3.setSelected(false); 

这篇关于android 盒子 TV CheckBox 的三种状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051715

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499