关于selector中state_pressed="true"的位置顺序


界面中有一个按钮使用这样的样式:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item>
		<shape>
			<corners android:radius="10dp"/>
			<solid android:color="#ff0099ff"/>
		</shape>
	</item>
	<item android:state_pressed="true">
		<shape>
			<corners android:radius="5dp"/>
			<solid android:color="#ff063c91"/>
		</shape>
	</item></selector>


会发现按钮被点击之后颜色未变,原来是press="true"的位置颠倒了,改为如下即可:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:state_pressed="true">
		<shape>
			<corners android:radius="5dp"/>
			<solid android:color="#ff063c91"/>
		</shape>
	</item>
	<item>
		<shape>
			<corners android:radius="10dp"/>
			<solid android:color="#ff0099ff"/>
		</shape>
	</item></selector>

也就是两个Item标签更换一下位置。 
其实这就有点类似于switch语句,最后item没有属性就代表default


猜你喜欢

转载自blog.csdn.net/xxdw1992/article/details/80544987