我有2个按钮和一个水平线性布局内的TextView。所有三个视图都有权重。我没有成功地将两个按钮垂直居中。
我试过了:
android:layout_gravity="center"
android:gravity="center"
线性布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#707070"
>
<Button
android:id="@+id/ratioLBButton"
android:text="LB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioLBFunction"
/>
<Button
android:id="@+id/ratioKGButton"
android:text="KG"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioKGFunction"
/>
<TextView
android:text="Hello World"
android:textSize="18sp"
android:gravity="center"
android:id="@+id/ratioOutput"
android:background="#707070"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="5"
/>
</LinearLayout>
这是包含上述视图的父级布局。
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:background="#989898"
>
这是我平板电脑的截图。它在我的Android手机上完全相同。
答案 0 :(得分:1)
如果您使用weight
,那么您需要将android:weightSum="10"
添加到父级,这将有助于父级知道应为每个父级分配的空间百分比。权重总和可以是价值。也应该是父母的所有孩子。使用android:layout_centerInParent="true"
也可以使所有孩子android:layout_width="fill_parent"
。
类似的东西:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="7">
<Button
android:id="@+id/ratioLBButton"
android:text="LB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioLBFunction"
/>
<Button
android:id="@+id/ratioKGButton"
android:text="KG"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioKGFunction"
/>
<TextView
android:text="Hello World"
android:textSize="18sp"
android:gravity="center"
android:id="@+id/ratioOutput"
android:background="#707070"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="5"
/>
每个儿童体重的总和必须等于父母的weightSum
。
注意:较小的值将占用更多空间
答案 1 :(得分:0)
这可能是一个愚蠢的答案。但是你在xmlns:android="http://schemas.android.com/apk/res/android"
首发代码中添加了<LinearLayout .....>
了吗?如果没有,请添加它。你的xml运行正常,我无法重现这个问题。
答案 2 :(得分:0)
我认为您的答案取决于android:layout_weight
和android:weightSum
属性。父级和子级布局。这意味着,如果您有3个内容为layout_weight="1"
的观看次数,那么您父母的观看次数应为android:weightSum="3"
,如下所示:
注意行:6
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:background="#707070"
android:orientation="horizontal">
<Button
android:id="@+id/ratioLBButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioLBFunction"
android:text="LB" />
<Button
android:id="@+id/ratioKGButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="ratioKGFunction"
android:text="KG" />
<TextView
android:id="@+id/ratioOutput"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:background="#707070"
android:gravity="center"
android:text="Hello World"
android:textSize="18sp" />
</LinearLayout>
我的预览:
答案 3 :(得分:0)
积极的:我想出来了
否定:我不想做修复
Is there a way to completely eliminate padding in a LinearLayout containing buttons?
基本上按钮底部有额外的填充。它有点像强迫症。我只想让它排队=(