selector的最佳用法

时间:2021-11-12 15:05:28

在进行UI布局的时候,我们经常会遇到这样的布局:如图

selector的最佳用法

这个包括背景的两种状态(分按下和没有按下)和圆角,之前我一直用的就是,先把圆角和背景写到一个drawable,分别写两个,然后再写一个selecor,这样做有点xx

其实有一种更简单的写法如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true">
<shape>
<corners android:radius="@dimen/btn_corners_radius"/>
<solid android:color="@color/colorPress"/>
</shape>
</item>

<!-- selected -->
<item android:state_selected="true">
<shape>
<corners android:radius="@dimen/btn_corners_radius"/>
<solid android:color="@color/colorPress"/>
</shape>
</item>

<!-- default -->
<item>
<shape>
<corners android:radius="@dimen/btn_corners_radius"/>
<solid android:color="@color/colorMain"/>
</shape>
</item>

</selector>