8

我有按钮,我想在所有按钮之间放置相同的空间,所以如果我在平板电脑中运行应用程序,按钮之间的空间将相等,我使用的是线性布局,我知道有 layout_weight 选项,但我不想拉伸图标

例如在此处输入图像描述

我的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>
4

7 回答 7

27

您可以使用 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>
于 2013-02-22T09:36:46.793 回答
6

为了使您在 XML 中的意图更清晰,请使用 a<Space> 而不是 a <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>
于 2014-09-02T14:58:55.147 回答
4

layout_weight每个Button1,它将划分所有空间

于 2013-02-22T09:27:54.100 回答
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" />
于 2013-02-22T09:29:55.767 回答
4

将每个按钮替换为

<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>

RelativeLayout即用android:layout_weight和包裹每个按钮android:gravity

于 2013-02-22T09:33:56.813 回答
3

我会使用表格布局并使用 strechColums="0" 。否则,如果您想坚持线性布局,那么您是否尝试过空间

于 2013-02-22T09:29:57.173 回答
0

试试这个

在此处插入按钮

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

在此处插入按钮

于 2019-07-24T03:45:12.950 回答