Selector使用相关:

来源:互联网 发布:自私的基因 知乎 编辑:程序博客网 时间:2024/06/06 01:59

Selector使用

也不废话,直接看代码:

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

注意事项:
1.必须要让<item android:state_XXX="true" android:color="@color/t"/> true的放在false的前边;
2.每个item都相当于一个if语句,若有多个true判断条件,只有当所有条件都满足时,才会采用该item中设置;
3.若不是特殊情况,建议采用上边的写法,这样可以适应多种选择情况;
4.不要随便用enable做判断,因为enable是指该控件各项功能是否可用的情况,enable=false时,点击监听都 不起作用了,那还怎么再次设置其属性呢!enable适合被动触发的情况,也就是决定条件不是取决于该控件, 而是取决于其他控件,来间接的控制该控件的某些属性,如ViewPager的pager页选择监听,调用下边的选项;

对于这种写法 :
<itemandroid:state_checked="true" android:state_selected="true" android:color="@color/XX"/> 

需要满足该控件被checked,并且同时要被选中selected才会采用XX这种颜色设置;

布局文件中代码:

 <TextView            android:id="@+id/tv4"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:drawableTop="@drawable/selector_draw4"  //像这样使用            android:text="ddd"            android:gravity="center"            android:textColor="@color/selector_tv"            android:textSize="14sp" />


Activity中做监听判断代码:

  @Override    public void onClick(View view) {        tv1.setSelected(false);        tv2.setSelected(false);        tv3.setSelected(false);        tv4.setSelected(false);        switch (view.getId()) {            case R.id.tv1:                tv1.setSelected(true);                break;            case R.id.tv2:                tv2.setSelected(true);                break;            case R.id.tv3:                tv3.setSelected(true);                break;            case R.id.tv4:                tv4.setSelected(true);                break;        }    }


内容先写这些,以后有机会在续写吧!

小编欢迎大家给与建议!O(∩_∩)O哈哈~!


0 0