Android - 在layer-list中,Padding不随状态改变而改变

3
我正在尝试创建按钮状态,其中正常状态是浅色,并带有底部的深色条纹,按下状态是深色并带有顶部的浅色条纹。所有这些都很好地实现了。然而,我还想随着状态改变填充(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>
1个回答

0

这并没有完全回答我的问题,但我意识到我应该能够通过使用9-Patch来实现所需的结果


1
然而,即使设置了内容,填充在状态之间似乎也没有改变... - lgdroid57

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接