selector的button选中处理问题

Posted yutingliuyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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选中处理问题的主要内容,如果未能解决你的问题,请参考以下文章

是否有在单个活动中处理多个片段的 Android 设计模式?

jQuery文档操作之克隆操作

金蝶handler中 collection 代码片段理解

android列举selector标签常用到属性,并说明分别代表哪些意思

android selector设置button点击效果(详细)以及常见问题

jquery操作select取值赋值与设置选中