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:使用Object.keys()和Array.map()方法2:使用Object.entr

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

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. 按