为什么layout_margin不适用于自定义按钮样式?

时间:2014-01-25 21:30:30

标签: android android-layout

我创建了一些自定义按钮样式。除layout_margin_top外,所有样式项都应用于使用此样式的Activity中的按钮。我真的不明白这个项目有什么不同,所以如果有人能让我知道为什么,那就太棒了。附上两张图片。在按钮之间没有边距的错误图像在样式上使用layout_marginTop="4dp"呈现,并且在布局中的每个按钮上使用layout_marginTop="4dp"呈现按钮之间具有边距的正确图像。

我尝试了什么

enter image description here

我理想的风格。

<style name="ButtonStyle" parent="@android:style/Widget.Button">
    <item name="android:textColor">@android:color/white</item>
    <item name="android:background">@drawable/button</item>
    <item name="android:paddingTop">8dp</item>
    <item name="android:paddingBottom">8dp</item>
    <item name="android:paddingLeft">8dp</item>
    <item name="android:paddingRight">8dp</item>
    <item name="android:textSize">@dimen/text_medium_small</item>
    <item name="android:layout_marginTop">4dp</item>
</style>

我在LinearLayout中的按钮:

<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:onClick="logSignificantEvent"
        android:text="@string/button_trigger_event"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:onClick="logDay"
        android:text="@string/button_subtract_a_day"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:onClick="showChoice"
        android:text="@string/button_force_choice"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:onClick="showRating"
        android:text="@string/button_force_rating"/>

什么有用

enter image description here

无边距的风格。

<style name="ButtonStyle" parent="@android:style/Widget.Button">
    <item name="android:textColor">@android:color/white</item>
    <item name="android:background">@drawable/button</item>
    <item name="android:paddingTop">8dp</item>
    <item name="android:paddingBottom">8dp</item>
    <item name="android:paddingLeft">8dp</item>
    <item name="android:paddingRight">8dp</item>
    <item name="android:textSize">@dimen/text_medium_small</item>
</style>

我必须直接将余量应用于每个按钮。

<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:layout_marginTop="4dp"
        android:onClick="logSignificantEvent"
        android:text="@string/button_trigger_event"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:layout_marginTop="4dp"
        android:onClick="logDay"
        android:text="@string/button_subtract_a_day"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:layout_marginTop="4dp"
        android:onClick="showChoice"
        android:text="@string/button_force_choice"/>
<Button android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:layout_marginTop="4dp"
        android:onClick="showRating"
        android:text="@string/button_force_rating"/>

供参考,以下是我在此活动中使用的主题:

<style name="MyTheme" parent="android:Theme.Holo.NoActionBar">
    <item name="android:buttonStyle">@style/ButtonStyle</item>
</style>

0 个答案:

没有答案