selector的按钮选中处理问题
发布时间:2020-12-16 09:26:29 所属栏目:百科 来源:网络整理
导读:1、背景介绍 在做Android项目开发的时候,有时我们需要对按钮做一些特殊的处理,比如按钮点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换;再比如有时候我们需要对界面的选择的时候,需要表示该项目是选中状态还是不被选中状态,怎么办,同
1、背景介绍在做Android项目开发的时候,有时我们需要对按钮做一些特殊的处理,比如按钮点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换;再比如有时候我们需要对界面的选择的时候,需要表示该项目是选中状态还是不被选中状态,怎么办,同样使用两张图片,分别表示不同状态就行了。
2、代码示例2.1 按钮的代码示例<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> 上面的这段代码,表示的是一个按钮的动画效果。 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之前,不能有元素出现。如果这样放置,会出现按钮一直是默认状态,而无法获得焦点的情况。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |