我只想使用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 中。
有关当前显示方式,请参阅链接。
答案 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
的值bottom
和layout_gravity
无效。仅当您将父级线性布局设为horizontal
时,才能使用此值。
由于您不想使用相对布局,因此可以选择match_parent
为您的第一个线性布局,并将其layout_weight
设置为1
。并将按钮从layout_height
到wrap_content
。