android:layout_gravity =“ bottom”无法正常工作

时间:2018-12-26 20:06:10

标签: xml android-studio

我只想使用LinearLayout,并想将“ RESET”按钮放在底部中央。但是即使使用android:layout_gravity="bottom|center_horizontal",它也不会触底。

我知道使用RelativeLayout可以解决问题,但是我希望LinearLayout可以正常工作。

<?xml version="1.0" encoding="utf-8"?>`enter code here`
<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:orientation="vertical"
    android:padding="16dp"
 tools:context="com.example.android.freestylewrestlingscorekeeperapp.MainActivity">

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:paddingRight="8dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Player A"
                android:textAlignment="center"
                android:textSize="24sp" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="0"
                android:textAlignment="center"
                android:textSize="48sp" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 5 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 4 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 3 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 2 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 1 points"
                android:textAllCaps="true" />
        </LinearLayout>

        <view
            android:layout_width="1dp"
            android:layout_height="match_parent" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:paddingLeft="8dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Player B"
                android:textAlignment="center"
                android:textSize="24dp" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="0"
                android:textAlignment="center"
                android:textSize="48dp" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 5 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 4 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 3 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 2 points"
                android:textAllCaps="true" />

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="+ 1 points"
                android:textAllCaps="true" />
        </LinearLayout>
    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:text="RESET" />
</LinearLayout>

当前,“重置”按钮位于两支球队的正下方,位于中心位置。我希望它位于底部 center 中。

有关当前显示方式,请参阅链接。

enter image description here

2 个答案:

答案 0 :(得分:2)

只需将父布局添加到按钮即可。我已经添加了LinearLayout并分配了android:layout_weight="1"

下面是代码

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="bottom|center_horizontal"
        android:orientation="horizontal">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RESET" />
    </LinearLayout>

希望这行得通!

答案 1 :(得分:0)

您的父级线性布局的方向为vertical,这意味着它已经垂直指定了其子布局,因此top的值bottomlayout_gravity无效。仅当您将父级线性布局设为horizontal时,才能使用此值。

由于您不想使用相对布局,因此可以选择match_parent为您的第一个线性布局,并将其layout_weight设置为1。并将按钮从layout_heightwrap_content