将按钮置于线性布局中

时间:2015-10-03 01:12:44

标签: android android-linearlayout

在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>

enter image description here

3 个答案:

答案 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>

Image Screenshot

希望得到这个帮助。

答案 1 :(得分:0)

gravityViewGroup中定义(仅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>