我正在尝试创建按钮状态,其中正常状态是浅色,并带有底部的深色条纹,按下状态是深色并带有顶部的浅色条纹。所有这些都很好地实现了。然而,我还想随着状态改变填充(padding)大小,但这并没有成功。(请注意,填充(padding)等于条纹的高度,选择器启用了“variablePadding”)。填充(padding)仍然保持在正常状态。是否有人遇到过这个问题或知道任何解决方案?谢谢!
正常状态:
正常状态:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<padding
android:bottom="20dp"
android:top="0dp"/>
<size
android:width="100dp"
android:height="80dp"/>
<solid
android:color="@color/green_light"/>
</shape>
</item>
<item>
<shape>
<padding
android:bottom="0dp"
android:top="0dp"/>
<size
android:width="100dp"
android:height="20dp"/>
<solid
android:color="@color/green_dark"/>
</shape>
</item>
</layer-list>
按下状态:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<padding
android:bottom="0dp"
android:top="20dp"/>
<size
android:width="100dp"
android:height="20dp"/>
<solid
android:color="@color/green_dark"/>
</shape>
</item>
<item>
<shape>
<padding
android:bottom="0dp"
android:top="0dp"/>
<size
android:width="100dp"
android:height="80dp"/>
<solid
android:color="@color/green_light"/>
</shape>
</item>
</layer-list>
选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true"
android:variablePadding="true">
<item android:drawable="@drawable/button_pressed"
android:state_pressed="true"/>
<item android:drawable="@drawable/button_normal"/>
</selector>