android - <layer-list> 后台禁用android :padding setting

标签 android layer-list

我有一个 ListView具有自定义项目布局和自定义背景。 问题是android:padding在我从 <shape> 切换背景可绘制对象后,值似乎被忽略了至 <layer-list> .

layout/list_item.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_list_item_bill"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="12dp">

    . . .
</LinearLayout>

drawable/list_item_background.xml

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <solid android:color="@color/white" />
        <corners android:radius="@dimen/corner_radius" />
        <stroke android:width="1dp" android:color="@color/blue" />
</shape>

以上按预期工作。当我更改 drawable/list_item_background.xml 时填充消失到

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape>
            <solid android:color="@color/white"/>
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/white" />
            <corners android:radius="@dimen/corner_radius" />
            <stroke android:width="1dp" android:color="@color/blue" />
        </shape>
    </item>

</layer-list>

我错过了什么?

最佳答案

包装 <layer-list><selector>解决了问题:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape>
                    <solid android:color="@color/white"/>
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <solid android:color="@color/white" />
                    <corners android:radius="@dimen/corner_radius" />
                    <stroke android:width="1dp" android:color="@color/blue" />
                </shape>
            </item>
        </layer-list>
    </item>
</selector>

关于android - <layer-list> 后台禁用android :padding setting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194416/

相关文章:

java - 从内部存储 android 应用程序访问 Excel 文件

java - 多次使用 drawable 但颜色不同

android线程 worker 队列

java - 我刚刚加载了 22 个可绘制对象,为什么会出现 OutOfMemoryError?

android - 我应该在 onSaveInstanceState 中保留数据对象吗

java - 在 MapFragment 中调用 onRequestPermissionResult 时出现 Android Studio @androidx.annotation.NonNull 错误

android - 使用图层列表创建可绘制的背景,图标被拉伸(stretch)

android - 带有图层列表的自定义绘图

android - 以编程方式更改图层列表 Drawable 项的底部属性

Android画线带边距