LinearLayout中按钮的位置

时间:2015-07-24 07:29:31

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

我已经添加了5个按钮(见下文),我需要将重置按钮与上述两个按钮的位置对齐,以保持均匀性。此外,我无法将GoodButton下面的提交按钮对齐。

enter image description here

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="2dp"
            android:layout_weight="0"
            android:text="1" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="4dp"
            android:layout_weight="0"
            android:text="1" />


        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:layout_weight="0"
            android:background="@android:color/darker_gray"></View>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="4dp"
            android:layout_weight="2"
            android:text="Good" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">


        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="4dp"
            android:layout_weight="1"
            android:text="Reset" />


        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:layout_weight="0"
            android:background="@android:color/darker_gray"></View>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="4dp"
            android:layout_weight="1"
            android:text="Submit" />
    </LinearLayout>

</LinearLayout>

我觉得这是由于我在顶部按钮上添加了额外的布局边距空间。

4 个答案:

答案 0 :(得分:1)

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"></Button>
            <Button android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"></Button>
        </LinearLayout>

        <Button android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"></Button>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_height="match_parent">
        <Button android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"></Button>
        <Button android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"></Button>
    </LinearLayout>

</LinearLayout>

使用它,正是您所需要的

答案 1 :(得分:0)

使用嵌套权重可能会带来性能问题。 使用相对布局可以轻松实现此设计。

检查此代码

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
    android:id="@+id/layout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"
    android:layout_margin="10dp">
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.25"
        android:text="1" />
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.25"
        android:text="2" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:text="3" />
</LinearLayout>

<LinearLayout
    android:layout_below="@+id/layout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"
    android:layout_margin="5dp">
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="4" />
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="5" />

</LinearLayout>

答案 2 :(得分:0)

你的问题是你没有很好地分配视图的重量。 您必须对两个水平LinearLayout应用权重,然后尝试平均分配其子视图的权重。

请参阅上面的示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="2"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="1">


    <Button
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight=".5"/>

    <Button
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight=".5" />
    </LinearLayout>


    <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Good" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">


    <Button
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_marginRight="4dp"
        android:layout_weight="1"
        android:text="Reset" />



    <Button
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Submit" />
</LinearLayout>

答案 3 :(得分:0)

你也可以像这样使用TableLayout:

total feature number