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

相关文章

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn