0

我在屏幕底部有 5 个按钮(按线性布局分组,每个按钮的权重为 1。在屏幕截图中,b1-b5 上方的行)。但是,当文本超过一行时,该特定按钮将被按下,甚至在其父级之外。每个按钮的高度是一个设定值,对所有按钮都相等。该next >按钮是唯一处于正确位置的按钮。下面是一些 XML,但这对我来说似乎很正常:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="@dimen/h"
    android:orientation="horizontal" >

    <Button                                    }
        android:layout_width="0dp"             }
        android:layout_height="@dimen/h"       }   x5
        android:layout_weight="1"/>            }
</LinearLayout>

按钮 b1-b5 中的 LinearLayout 的 margin_top 为 10dp。

截图:

截屏

红线是按钮应对齐的位置。蓝线是带有两行文本的按钮,绿色是 3 行。

根据屏幕截图,这些按钮包含的文本行越多,它们被向下推的越多。如果按钮包含太多文本,如何阻止按钮被按下?我不能使用相对布局并让它们对齐顶部,因为我需要它们的权重相等

编辑:完整(虽然缩短)XML

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="6dp"
    android:paddingRight="6dp"
    android:paddingTop="6dp">
    <LinearLayout
        android:id="@+id/panel1"
        android:layout_width="match_parent"
        android:layout_height="@dimen/h"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="@dimen/margin"
        android:layout_centerHorizontal="true">
        <Button 
            android:layout_width="0dp"      }
            android:layout_height="@dimen/h"    }x5
            android:layout_weight="1"/>     }
    </LinearLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_above="@+id/text"
        android:layout_alignParentTop="true">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="vertical"
            android:background="@color/black"
            android:textColor="@color/white"
            android:text="@string/longtext">
        </TextView>
    </ScrollView>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/panel1"
        android:gravity="bottom">

        <LinearLayout
            android:id="@+id/panel2"
            android:layout_width="match_parent"
            android:layout_height="@dimen/h"
            android:orientation="horizontal">

            <Button
                android:layout_width="0dp"              }
                android:layout_height="@dimen/h"    }x5
                android:layout_weight="1"/>             }
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
4

1 回答 1

3

在 XML 中,设置此值:android:baselineAligned="false". 奇怪的是,这与您期望的相反。

于 2013-01-26T10:24:33.673 回答