selector的button选中处理问题
1、背景介绍
在做Android项目开发的时候,有时我们须要对button做一些特殊的处理,比方button点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换。再比方有时候我们须要对界面的选择的时候,须要表示该项目是选中状态还是不被选中状态。怎么办,相同使用两张图片。分别表示不同状态即可了。
2、代码演示样例
2.1 button的代码演示样例
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/menubar_home_pressed" />
<item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/menubar_home_pressed" />
<item android:state_enabled="true" android:drawable="@drawable/menubar_home_normal" />
<item android:state_focused="true" android:drawable="@drawable/menubar_home_pressed" />
</selector>
上面的这段代码,表示的是一个button的动画效果。
2.2 选中与失去焦点
</pre><pre name="code" class="html"><pre name="code" class="html"><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menubar_home_pressed" android:state_selected="true"/>
<item android:drawable="@drawable/menubar_home_normal"/>
</selector>
上面的代码中,item部分第一行表示选中状态。第二行表示默认状态。
3、问题解析
在2.2中的代码。我们假设写成下面形式:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menubar_home_normal"/>
<item android:drawable="@drawable/menubar_home_pressed" android:state_selected="true"/>
</selector>
假设2.2中的item位置交换一下。第一行放在第二行的以下。那么我们能够在xml文件里看到一条黄色的波浪线。例如以下图所看到的:
我们能够看到。代码中有这种提示:
This item is unreachable because a previous item (item #1) is a more general match than this one
这句话就是说第二行item之前。不能有元素出现。假设这样放置,会出现button一直是默认状态,而无法获得焦点的情况。
selector的button选中处理问题的更多相关文章
- jquery获取单选button选中的值
		在页面上单选button的代码: <s:iterator value="@com.hljw.cmeav.util.CmeavGlobal@isComMap"> < ... 
- 微信小程序button选中改样式-实现单选/多选
		小程序实现多button单选/多选 红色为选中状态 单选 多选 ①wxss /* pages/button-select/button-select.wxss */ .button_container ... 
- iOS Button选中与取消
		/** * 是否点击 */ @property (nonatomic ,assign) BOOL selected; /** * button 点击事件选中取消选中 */ - (void)handl ... 
- android  selector设置button点击效果(具体)以及常见问题
		button的点击效果学习起来其实比較easy,此点对开发人员来说也是使用的比較频繁的一个知识点,与它相关的还有编辑框的获取焦点时改变背景颜色.选择button选择时改变字体颜色等等.这些其实都是用到 ... 
- <已解决>使用selector设置Button按下松开的样式以及 <item> tag requires a 'drawable' attribute or child tag defining a drawable 报错
		<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht ... 
- 转 Android RadioButton设置选中时文字和背景颜色同时改变
		主要应用在购物车,像淘宝的那样,点击以后弹出一个选择种类颜色这样的popuwindow以后,然后这个选择种类的地方要用到类似这个玩意儿. 搜了一下,效果和这个文章一致.转了. 原文地址:http:// ... 
- android背景选择器selector用法汇总
		一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 <?xml version="1.0" encoding="utf-8&quo ... 
- android中的selector背景选择器的用法
		关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法. 首先android的selector是在 ... 
- Android的selector,背景选择器
		原文地址 http://android.blog.51cto.com/268543/564581 首先android的selector是在drawable/xxx.xml中配置的,相关图片放在同目录下 ... 
随机推荐
- mysql explain字段意思解释
			mysql explain字段意思解释 explain包含id.select_type.table.type.possible_keys.key.key_len.ref.rows.extra字段 id ... 
- jenkins使用xvfb插件构建虚拟化显示屏自动化测试
			1.linux服务器安装xvfb,并启动 参考我的博客:http://www.cnblogs.com/lincj/p/5468505.html 或者网上搜索一下进行安装 2.jenkins安装xvfb ... 
- bzoj 3203 凸包+三分
			题目大意 具体自己看吧link 读入n,D,表示n关 大概就是第i关有i只僵尸排成一队来打出题人 最前面那只是编号为\(i\)的僵尸,最后面的一只是编号为\(1\)的僵尸 最前面的僵尸离出题人\(X_ ... 
- Linux System Programming  学习笔记(二) 文件I/O
			1.每个Linux进程都有一个最大打开文件数,默认情况下,最大值是1024 文件描述符不仅可以引用普通文件,也可以引用套接字socket,目录,管道(everything is a file) 默认情 ... 
- POJ 3233
			矩阵分治 注意不要用 (*this) 会改变原值 #include <iostream> #include <cstdio> #include <cstring> ... 
- for循环创建对象
			有时候奇怪的发现往list添加数据的时候,一直被最后一个元素覆盖,首先 ,我们得明白原理: 在new 一个对象的时候,对象的ID是唯一确定的:将对象add入list中时,放入list中的其实是对象的引 ... 
- Android4.2.2 动态显示隐藏屏幕底部的导航栏(对系统源码进行修改)
			需求如题. 在Android4.2.2中,导航栏(也就是屏幕底部的三个按钮,home,back,recentapp)是系统应用SystemUi.apk的一部分,简言之,我们的需求就是让我们的app来控 ... 
- Servlet 2.4 规范之第六篇:响应
			响应对象封装了服务端返回给客户端的所有信息.在HTTP协议中,这些信息通过HTTP头和消息体传送. SRV.5.1 缓冲 出于效率考量,servlet容器可以缓冲输出数据,但这并非强制要求.常见 ... 
- 详解webpack-dev-server的配置属性
			1.devServer.contentBase 它指定了服务器资源的根目录,如果不写入contentBase的值,那么contentBase默认是项目的目录. 在上面例子中产生错误和后来解决错误的 ... 
- 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)
			题目链接 Codeforces_Gym_101177 Problem A Anticlockwise Motion 直接模拟即可 #include<iostream> #include ... 
