Android - 填充不随图层列表中的状态而变化

Posted

技术标签:

【中文标题】Android - 填充不随图层列表中的状态而变化【英文标题】:Android - Padding not changing with state in layer-list 【发布时间】:2015-10-27 10:21:43 【问题描述】:

我正在尝试创建按钮状态,其中正常状态是底部带有深色带的浅色,按下状态是顶部带有浅色带的深色。所有这些工作正常。但是,我希望填充也随着状态而变化,但这不能正常工作。 (请注意,padding 等于 band 的高度,并且选择器启用了“variablePadding”)。填充保持在正常状态。有没有人遇到过这种情况,或者知道任何解决方案?谢谢!

正常状态:

<?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:
                android:/>
            <solid
                android:color="@color/green_light"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="0dp"
                android:top="0dp"/>
            <size
                android:
                android:/>
            <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:
                android:/>
            <solid
                android:color="@color/green_dark"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="0dp"
                android:top="0dp"/>
            <size
                android:
                android:/>
            <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】:

这并不能完全回答我的问题,但我意识到我应该能够使用 9-Patch 达到预期的结果

【讨论】:

但是,即使设置内容,填充似乎也不会在状态之间改变......

以上是关于Android - 填充不随图层列表中的状态而变化的主要内容,如果未能解决你的问题,请参考以下文章

MyImage.Source 索引不随列表变化

APP字体大小,不随系统的字体大小变化而变化的方法

Android App修改字体大小,且不随系统字体大小更改

VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化

App字体大小不随系统改变而改变

布尔值 isChecked 不随 foreach 变化