android - LinearLayout(Horizo​​ntal) - 项目之间的自动空间

时间:2014-05-01 04:21:33

标签: android android-layout

我有一个android LinearLayout,在按钮上我有按钮,我想在一行显示 - 我把它放在一个水平布局,所以它会彼此相邻 - 到目前为止一直很好。

这是我的问题 - 按钮是彼此相邻的,我想要的是让它们在屏幕之间留出空格,从右到左填充第一个和最后一个按钮不会粘在屏幕边框。

这是我的布局xml(只是LinearLayout(水平)部分):

    <LinearLayout
        android:id="@+id/btnHelpLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btnHelp"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:background="@drawable/btn_help" />

        <TextView
            android:id="@+id/tvHelp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/btn_help"
            android:textColor="#fff" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/btnShareLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btnShare"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:background="@drawable/btn_share" />

        <TextView
            android:id="@+id/tvShare"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/btn_share"
            android:textColor="#fff" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/btnAboutLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="28dp"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btnAbout"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:background="@drawable/btn_about" />

        <TextView
            android:id="@+id/tvAbout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/btn_about"
            android:textColor="#fff" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/btnSettingsLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btnSettings"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:background="@drawable/btn_settings" />

        <TextView
            android:id="@+id/tvSettings"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/btn_settings"
            android:textColor="#fff" />
    </LinearLayout>
</LinearLayout>

我怎样才能让它居中并有空格?

感谢

1 个答案:

答案 0 :(得分:3)

更改子容器(LinearLayout's btnHelpLayout btnShareLayout btnAboutLayout btnSettingsLayout android:layout_width属性为"0dip",并在所有子容器中设置新属性android:layout_weight="1" ButtonsTextViews)。< / p>

这将使它们占据相同的空间并给你一个统一的外观。

<LinearLayout
    android:id="@+id/btnHelpLayout"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="30dp"
    android:layout_weight="1"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnHelp"
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:background="@drawable/btn_help" />

    <TextView
        android:id="@+id/tvHelp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:text="@string/btn_help"
        android:textColor="#fff" />
</LinearLayout>

<LinearLayout
    android:id="@+id/btnShareLayout"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="30dp"
    android:layout_weight="1"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnShare"
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:background="@drawable/btn_share" />

    <TextView
        android:id="@+id/tvShare"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:text="@string/btn_share"
        android:textColor="#fff" />
</LinearLayout>

<LinearLayout
    android:id="@+id/btnAboutLayout"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="28dp"
    android:layout_weight="1"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnAbout"
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:background="@drawable/btn_about" />

    <TextView
        android:id="@+id/tvAbout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:text="@string/btn_about"
        android:textColor="#fff" />
</LinearLayout>

<LinearLayout
    android:id="@+id/btnSettingsLayout"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnSettings"
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:background="@drawable/btn_settings" />

    <TextView
        android:id="@+id/tvSettings"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:text="@string/btn_settings"
        android:textColor="#fff" />
</LinearLayout>