【问题标题】:Button not auto margin when set background设置背景时按钮不自动边距
【发布时间】:2014-03-14 09:08:39
【问题描述】:

我在创建布局 android 时遇到问题。我使用 linearlayout 在其中添加 4 个按钮

param layout_width="0dp" 

layout_weight="1"

所有按钮边距都很好。

<LinearLayout
    android:id="@+id/lnlayout" 
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="#000000">

    <Button
        android:id="@+id/btnEffectVideo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/effect_video"
        android:padding="5dp"/>

    <Button
        android:id="@+id/btnDgAddMusic"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="@string/add_music" />

    <Button
        android:id="@+id/btnDgMoreText"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="@string/more_text" />
    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="@string/save" />
</LinearLayout>

但是当我改变背景按钮时它不是边距。

自定义按钮.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true" >
  <shape>
  <solid
   android:color="#696969" />
  <stroke
   android:width="1dp"
   android:color="#FFFFFF" />
  <corners
   android:radius="3dp" />
  </shape>
 </item>
  <item>
  <shape>
  <gradient
   android:startColor="#F6BF00"
   android:endColor="#992f2f"
   android:angle="270" />
  <stroke
   android:width="1dp"
   android:color="#FFFFFF" />
  <corners
   android:radius="5dp" />
 </shape>
 </item>
</selector>

请帮我解决这个问题

【问题讨论】:

    标签: android android-layout android-linearlayout android-button


    【解决方案1】:

    只需使用按钮设置边距

    android:layout_margin="10dp"
    

    它将从所有方面占用所有边距:)

    【讨论】:

    • 谢谢!这行得通。但我不明白发生了什么。
    • 实际上,当我们按下按钮时,只有我们可以看到按钮制作类似按钮的设计,但在 android 中,该视图区域也包括在您的情况下的该视图中,如果您实际看到按钮,则只需单击xml图形视图中的那个按钮,看看会选择哪个区域:)
    • +1 接受并投票,伙计,我是新成员,我不知道该怎么做。对不起:D