使用XML在Layer-List中更改布局的边距

7
我尝试了几种选项,但是找不到最好的方法来实现这个目标:我希望在按钮被点击时使用XML更改线性布局的边距。以下是所选按钮的代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:bottom="-1dp">
        <shape android:shape="rectangle" >
            <corners
                android:topLeftRadius="5dp"
                android:topRightRadius="5dp" />

            <solid android:color="#424346" />

            <stroke
                android:width="1dp"
                android:color="#2d2e2f" />
        </shape>
    </item>
</layer-list>

现在我想要添加margin的更改,如果将其放在单独的文件中,它将看起来像这样:
<resources>
    <style android:id="@+id/tab_label" >
        <item android:layout_marginTop="7dp"/>
    </style>
</resources>

我尝试将它添加为图层列表中的项目,但是出现了错误。
将其放在另一个文件中会有些问题,因为Android不允许在一个元素中使用两个样式。因此,我想将这两个东西合并到一个XML文件中。
或者,有什么更好的方法吗?
2个回答

23

经过大约一周的尝试,我终于解决了它。在这行代码上:

<item android:bottom="-1dp">

将其修改为:

<item android:bottom="-1dp" android:top="4dp">

您可以根据自己的喜好自定义数字。


3
一定是个有趣的一周。 - nibbana

0

我用了这个技巧

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

    <stroke
        android:width="4dp"
        android:color="@android:color/transparent" />

    <solid android:color="#FDE0B4" />
    <corners android:radius="4dp" />

</shape>

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