selector

作者: 咸鱼佬 | 来源:发表于2018-10-14 08:51 被阅读2次

    状态列表

    state_enble

    当前的view是否能够消费点击事件,

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <!--this.findViewById(R.id.my_btn).setEnabled(boolean);-->
    <!--android:enabled="false"-->
    <!--代表这个view是否能够消费掉点击事件,false就是不能,true反之-->
    <item android:drawable="@android:color/holo_blue_dark"
          android:state_enabled="false"/>
    <item android:drawable="@android:color/holo_orange_dark"
          android:state_enabled="true"
        />
    </selector>
    

    state_pressed

    view是否被压着,

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <!--压-->
    <item
        android:drawable="@color/colorAccent"
        android:state_pressed="true"/>
    
    <!--没压-->
    <item
        android:drawable="@color/colorPrimary"
        android:state_pressed="false"/>
    
    </selector>
    

    [图片上传失败...(image-50c3ce-1539478300370)]

    state_hovered

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <!--这个貌似不好用的赶脚-->
    <item android:drawable="@color/colorPrimary"
          android:state_hovered="true"/>
    <item android:drawable="@color/colorAccent"
          android:state_hovered="false"/>
    </selector>
    

    state_focused

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:drawable="@color/colorAccent"
          android:state_focused="true"/>
    <item android:drawable="@color/colorPrimaryDark"
          android:state_focused="false"/>
    </selector>
    

    [图片上传失败...(image-dc322e-1539478300370)]
    那两个控件是editview

    state_checked

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    
    <item android:drawable="@color/colorPrimary"
          android:state_checked="true"
        />
    <item android:drawable="@color/colorAccent"
          android:state_checked="false"/>
    </selector>      
    

    [图片上传失败...(image-e36b68-1539478300370)]

    state_window_focused

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <!--如果当应用窗口有焦点(应用在前台)时应使用此项目,则值为“true”;
    如果当应用窗口没有焦点(例如,通知栏下拉或对话框出现)时应使用此项目,则值为“false”。-->
    <item android:drawable="@color/colorAccent"
          android:state_window_focused="true"/>
    <item android:drawable="@color/colorPrimaryDark"
          android:state_window_focused="false"/>
    
    </selector>
    

    [图片上传失败...(image-afc318-1539478300370)]

    enterFadeDuration 和 exitFadeDuration

    <?xml version="1.0" encoding="utf-8"?>
    <selector
    android:enterFadeDuration="5000"
    android:exitFadeDuration="5000"
    xmlns:android="http://schemas.android.com/apk/res/android">
    
    
    <item android:drawable="@color/colorPrimary"
          android:state_checked="true"
        />
    <item android:drawable="@color/colorAccent"
          android:state_checked="false"/>
    </selector>
    

    [图片上传失败...(image-bcd77a-1539478300370)]

    注:请记住,Android 将应用状态列表中第一个与对象当前状态匹配的项目。因此,如果列表中的第一个项目不含上述任何状态属性,则每次都会应用它,这就是默认值应始终放在最后的原因(如以下示例所示)。

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
    </selector>
    

    demo:https://github.com/lijinxiong/Select

    相关文章

      网友评论

          本文标题:selector

          本文链接:https://www.haomeiwen.com/subject/gkczaftx.html