为什么我的按钮仍然有填充android

时间:2014-06-12 18:34:15

标签: android button padding

我有以下布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
    android:visibility="gone" >

    <Button
        android:id="@+id/btnProfileUpdatePhotoSave"
        style="@style/profile_update_photo_button"
        android:text="@string/profile_update_photo_save" />

    <Button
        android:id="@+id/btnProfileUpdatePhotoCancel"
        style="@style/profile_update_photo_button"
        android:text="@string/profile_update_photo_cancel" />
</LinearLayout>

这种风格:

<style name="profile_update_photo_button">
    <item name="android:background">@drawable/custom_button_profile_update_photo</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">2dp</item>
    <item name="android:paddingRight">3dp</item>
    <item name="android:paddingLeft">3dp</item>
    <item name="android:textColor">@drawable/custom_button_profile_update_photo_text_color</item>
</style>

layout_widthlayout_height都是wrap_content。然而,虽然两侧的按钮没有填充(因此我放paddingRightpaddingLeft),但是从顶部和按钮有很大的填充(如10dp或类似的东西)。

@drawable/custom_button_profile_update_photo基本上包含5dp圆角的矩形形状。

如何摆脱这种填充?

3 个答案:

答案 0 :(得分:0)

如果要将top和bottom的填充设置为零或其他值,请使用

android:paddingBottom    
  

设置底边的填充(以像素为单位)。

android:paddingTop  
  

设置上边缘的填充(以像素为单位)

您必须将这些项目添加到<style>

<style name="profile_update_photo_button">
    <item name="android:background">@drawable/custom_button_profile_update_photo</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">2dp</item>
    <item name="android:paddingRight">3dp</item>
    <item name="android:paddingLeft">3dp</item>
    <item name="android:paddingTop">0dp</item>
    <item name="android:paddingBottom">0dp</item>
    <item name="android:textColor">@drawable/custom_button_profile_update_photo_text_color</item>
</style>

答案 1 :(得分:0)

在您的样式中定义顶部和底部填充值,以使用左侧和右侧值。如果未指定,您将获得控件的默认填充。

答案 2 :(得分:0)

这里的解决方案是设置最小高度

android:minHeight="0dp"

只需将这些添加到您的样式

<style name="profile_update_photo_button">
    <item name="android:background">@drawable/custom_button_profile_update_photo</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">2dp</item>
    <item name="android:paddingRight">3dp</item>
    <item name="android:paddingLeft">3dp</item>
    <item name="android:textColor">@drawable/custom_button_profile_update_photo_text_color</item>
<item name="android:minHeight">0dp</item>
</style>

希望这对您有帮助