在LinearLayout上使用重力使按钮正确居中:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/new"
android:paddingLeft="40dp"
android:paddingRight="40dp"/>
</LinearLayout>
但是在Button上使用layout_gravity = center只会使按钮水平居中而不是垂直居中,为什么?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TEST"
android:paddingLeft="40dp"
android:paddingRight="40dp"
android:layout_gravity="center"/>
</LinearLayout>
答案 0 :(得分:5)
我认为layout_gravity
可以使按钮居中于LinearLayout
有用的文章:LinearLayout gravity and layout_gravity explained
检查下面的简单代码。它会在LinearLayout
<?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="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f00"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Button Center Hozizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#00f"
android:orientation="horizontal" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Button Center Vertical" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0ff"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Button Center Vertical/ Horizontal" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
希望得到这个帮助。
答案 1 :(得分:0)
gravity
在ViewGroup
中定义(仅ViewGroup
,其子类具有此属性)。 layout_gravity
中定义了View
。
layout_gravity
改变了视图的引力,到目前为止一直很好。但是,如果您将gravity
应用于ViewGroup
,例如LinearLayout
,则视图中的视图会改变重力。
这意味着,设置gravity
的{{1}}与将ViewGroup
设置为其所有观看次数相同!
粗体句肯定会回答你的问题。
答案 2 :(得分:-1)
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/b1"
android:text="COLOR"/>
</LinearLayout>