无法从样式中更改按钮的layout_margin?

时间:2014-04-05 13:01:54

标签: android xml styles

我试图设置所有按钮的样式,但由于某种原因,我的风格并没有影响他们的利润。 (它们显示在彼此旁边)然后在layout.xml上更改layout_margin但是确实有效。

这是我的代码:

<style name="Button" parent="@android:style/Widget.DeviceDefault.Button">
    <item name="android:layout_margin">5dp</item>
    <item name="android:background">@android:color/holo_orange_light</item>
</style>

这是我的布局:

<TableRow
    android:layout_weight="1"
    android:orientation="horizontal"
    android:baselineAligned="false"
    android:clickable="false"
    android:layout_height="fill_parent"
    android:layout_width="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="1"
        android:id="@+id/button1"
        android:layout_weight="0.06"
        android:clickable="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="2"
        android:id="@+id/button2"
        android:layout_weight="0.06" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="3"
        android:id="@+id/button3"
        android:layout_weight="0.06"
        android:layout_marginBottom="2dp" // This works
        android:layout_marginTop="2dp" />

</TableRow>
//...

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我刚遇到同样的问题,带边距的解决方案是在每个布局中的每个按钮上定义样式,如下所示:

<TableRow
    android:layout_weight="1"
    android:orientation="horizontal"
    android:baselineAligned="false"
    android:clickable="false"
    android:layout_height="fill_parent"
    android:layout_width="match_parent">

    <Button
        style="@style/Button"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="1"
        android:id="@+id/button1"
        android:layout_weight="0.06"
        android:clickable="true" />

    <Button
        style="@style/Button"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="2"
        android:id="@+id/button2"
        android:layout_weight="0.06" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="3"
        android:id="@+id/button3"
        android:layout_weight="0.06"
        android:layout_marginBottom="2dp" // This works
        android:layout_marginTop="2dp" />
</TableRow>
//...

因此,在这种情况下,您甚至不需要将其添加到主题中。

来源:https://stackoverflow.com/a/13365288/3564556