Android 如何在xml中集中整个线性布局?

Android 如何在xml中集中整个线性布局?,android,xml,layout,android-linearlayout,Android,Xml,Layout,Android Linearlayout,在线性布局中有一些垂直方向的元素 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:orientation="vertical" > <TextView ...

在线性布局中有一些垂直方向的元素

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:orientation="vertical" >

    <TextView
            ... />

    <Button
            ... />
</LinearLayout>

这些元素不会占用应用程序的整个垂直空间,我希望它们垂直居中。如何执行此操作?

Layout\u gravity=“center\u vertical”在垂直线性布局上不起作用

我建议您可以在线性布局上设置
android:layout\u height=“match\u parent”
android:gravity=“center\u vertical”

layout\u gravity=“center\u vertical”在垂直线性布局上不起作用

我建议您可以在线性布局上设置
android:layout\u height=“match\u parent”
android:gravity=“center\u vertical”

尝试以下方法:


只需将视图的重心设置为“中心”。我想这就是你想要的

尝试以下方法:


只需将视图的重心设置为“中心”。我想这就是你想要的

该属性相对于其父视图定位视图,表示视图的封闭布局。在您的例子中,问题是,您没有封闭布局。我知道,这是令人困惑的,因为人们可能会认为LinearLayout将其自身集中在根窗口中,但即使涉及到基本上引用 对于它们的父级,例如“”,它们总是指它们的封闭布局(“父级”)。顺便说一下,“LinearLayout”不支持这些属性

我解决您问题的想法:

解决方案1:将线性布局放在封闭布局中:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

     <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Textbox1"  />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Textbox2"  />     

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button1" />

    </LinearLayout>

</FrameLayout>

解决方案2:让包含的视图对齐

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textview_1"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Textbox1" />

    <TextView
        android:id="@+id/textview_2"
        android:layout_below="@id/textview_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Textbox2" />      

    <Button
        android:layout_below="@id/textview_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1" />

</RelativeLayout>

希望有帮助

该属性相对于其父视图定位视图,表示视图的封闭布局。在您的例子中,问题是,您没有封闭布局。我知道,这是令人困惑的,因为人们可能会认为LinearLayout将其自身集中在根窗口中,但即使涉及到基本上引用 对于它们的父级,例如“”,它们总是指它们的封闭布局(“父级”)。顺便说一下,“LinearLayout”不支持这些属性

我解决您问题的想法:

解决方案1:将线性布局放在封闭布局中:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

     <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Textbox1"  />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Textbox2"  />     

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button1" />

    </LinearLayout>

</FrameLayout>

解决方案2:让包含的视图对齐

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textview_1"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Textbox1" />

    <TextView
        android:id="@+id/textview_2"
        android:layout_below="@id/textview_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Textbox2" />      

    <Button
        android:layout_below="@id/textview_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1" />

</RelativeLayout>


希望有帮助

如我所知,将所有孩子的
高度设置为
包裹内容
,并使用
android:layout\u gravity=“center\u horizontal
,如我所知,将所有孩子的
高度设置为
包裹内容
,并使用
android:layou\u gravity=“center\u horizontal