在linearlayout中的按钮之间创建相同的空格

时间:2013-02-22 09:26:44

标签: android android-linearlayout

我有按钮,我想在所有按钮之间放置相同的空间,所以如果我在平板电脑上运行应用程序按钮之间的空间将等于鸿沟,我使用linearlayout,我知道有layout_weight选项,但我不想拉伸图标

例如enter image description here

我的xml代码在

下面
  <LinearLayout
        android:id="@+id/shareLinearLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnRequestAPrescriptionRefill"
        android:layout_marginTop="10dp" >

        <Button
            android:id="@+id/btnFacebook"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/btn_facebook" />

        <Button
            android:id="@+id/btnYoutube"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/btn_youtube" />

        <Button
            android:id="@+id/btnTwitter"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/btn_twitter" />

        <Button
            android:id="@+id/btnPintrest"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/btn_pintrest" />
    </LinearLayout>

7 个答案:

答案 0 :(得分:26)

您可以使用layout_weight。但就像你说Buttons will be stretched,所以不要在按钮上使用权重,而是使用空格(视图)。

    <Button
        android:id="@+id/btnFacebook"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_facebook" />

    <View
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/btnYoutube"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_youtube" />

    <View
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/btnTwitter"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_twitter" />

    <View
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/btnPintrest"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_pintrest" />
</LinearLayout>

答案 1 :(得分:6)

为了让您的XML更清晰,请使用<Space>代替<View>,如下所示:

  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/Blue"
        android:orientation="horizontal" >

       <Space
           android:layout_width="0dp"
           android:layout_height="1dp"
           android:layout_weight="1" >
       </Space>

       <Button
           android:id="@+id/btnFacebook"
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:background="@drawable/btn_facebook" />

        <Space
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_weight="1" >
        </Space>

...and repeat with the rest of your buttons...

</LinearLayout>

答案 2 :(得分:5)

替换每个按钮
<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    >
    <Button
        android:id="@+id/btnFacebook"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_facebook" />
</RelativeLayout>

即。使用RelativeLayoutandroid:layout_weight

包裹android:gravity的每个按钮

答案 3 :(得分:4)

试试这个......

    <Button
        android:id="@+id/btnFacebook"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_facebook" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3" />

    <Button
        android:id="@+id/btnYoutube"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_youtube" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3" />

    <Button
        android:id="@+id/btnTwitter"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_twitter" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"/>

    <Button
        android:id="@+id/btnPintrest"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/btn_pintrest" />

答案 4 :(得分:3)

layout_weight提供给每个Button 1,它会划分所有空格

答案 5 :(得分:3)

我会使用表格布局并使strechColums =“0”。否则,如果你想坚持线性布局,那么你试过space

答案 6 :(得分:0)

尝试这个

在此处插入按钮

<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />

在此处插入按钮