博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio属性学习(二)——selector属性
阅读量:3917 次
发布时间:2019-05-23

本文共 1788 字,大约阅读时间需要 5 分钟。

一、前提

selector为状态选择器,一般使用在各种操作状态下,主要体现在字体,背景的切换方面,我们可以动态的使用代码去设置!也可以使用selector状态选择器去快速实现,因为它简单方便,复用性强!

二、目标

selector

三、内容

1、类型
//设置是否按压状态,一般在true时设置该属性,表示已按压状态,默认为false
android:state_pressed

//设置是否选中状态,true表示已选中,false表示未选中

android:state_selected

//设置是否勾选状态,主要用于CheckBox和RadioButton,true表示已被勾选,false表示未被勾选

android:state_checked

//设置勾选是否可用状态,类似state_enabled,只是state_enabled会影响触摸或点击事件,state_checkable影响勾选事件

android:state_checkable

//设置是否获得焦点状态,true表示获得焦点,默认为false,表示未获得焦点

android:state_focused

//设置触摸或点击事件是否可用状态,一般只在false时设置该属性,表示不可用状态

android:state_enabled

//设置当前窗口是否获得焦点状态,true表示获得焦点,false 表示未获得焦点,例如拉下通知栏或弹出对话框时, 当前界面就会失去焦点;另外,ListView的ListItem获得焦点时也会触发true状态,可以理解为当前窗口就是ListItem本身

android:state_window_focused

//设置是否被激活状态,true表示被激活,false表示未激活,API Level 11及以上才支持,可通过代码调用控件的

android:state_activated

//方法设置是否激活该控件

setActivated(boolean)

//设置是否鼠标在上面滑动的状态**,true表示鼠标在上面滑动,默认为false,API Level 14及以上才支持

//补充:selector标签下有两个比较有用的属性要说一下,添加了下面两个属性之后,则会在状态改变时出现淡入淡出效果,
//但必须在API Level 11及以上才支持
android:state_hovered

//状态改变时,旧状态消失时的淡出时间,以毫秒为单位

android:exitFadeDuration

//状态改变时,新状态展示时的淡入时间,以毫秒为单位

android:enterFadeDuration

2、布局

先创建一个新的xml文件

再在布局文件中添加一个按钮

3、常用类型介绍

(1)android:state_pressed,按压效果,点击后改变颜色

这里面便用到了上次讲到的shape属性,具体不多说,selector状态选择器中只有一个元素就是item,其余的效果展示都要写在item中

在这里插入图片描述
2、android:state_checked
先在布局文件中添加两个复选框

改变按钮的样式,提前加入两张图片,可自选

在selector.xml文件中添加

在这里插入图片描述

RadioButton相似,再次不做展示

3、android:state_focused

先添加两个编辑框,因为获取焦点一般都用在编辑框

在xml文件中可以不写false的选项

在这里插入图片描述

四、总结

这些类型可以共用,也就是一个组件可以实现多个元素,再遇见其他需要的类型时会再做介绍

转载地址:http://tyvrn.baihongyu.com/

你可能感兴趣的文章
如何在 ASP.NET Core 中使用 NLog 的高级特性
查看>>
对CORS OPTIONS预检请求的一些思考
查看>>
.NET/C#程序开发中如何更优美地实现失败任务重试的逻辑?
查看>>
【Git】Git-常用命令备忘录(二)
查看>>
起点低,是彪悍的最好证明!
查看>>
「译」 .NET 5 新增的Http, Sockets, DNS 和 TLS 遥测
查看>>
如何在 ASP.NET Core 中 使用 功能开关
查看>>
微服务畅想录
查看>>
引入Jaeger——扩展
查看>>
ASP.NET Core Controller与IOC的羁绊
查看>>
【Git】Git-常用命令备忘录(三)
查看>>
前端数据层落地实践
查看>>
如何实现 ASP.NET Core WebApi 的版本化
查看>>
使用 dotnet-monitor 分析.NET 应用程序
查看>>
探索 .Net Core 的 SourceLink
查看>>
AgileConfig-如何使用AgileConfig.Client读取配置
查看>>
【gRPC】 在.Net core中使用gRPC
查看>>
整合.NET WebAPI和 Vuejs——在.NET单体应用中使用 Vuejs 和 ElementUI
查看>>
老人言:尽量用异步
查看>>
“既然计划没有变化快,那制订计划还有个卵用啊!”
查看>>