Android XML:在底部水平居中

Jac*_*ove 0 xml android

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    >

<TextView 
    android:text="Title" 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30px" 
    android:textStyle="bold" 
    >
</TextView>

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="60px">

<Button 
    android:text="Choose a Story" 
    android:id="@+id/choose" 
    android:layout_width="150px" 
    android:layout_height="wrap_content"  
    android:layout_gravity="bottom" 
    android:layout_marginBottom="1px">
</Button>

<Button 
    android:text="Info" 
    android:id="@+id/info" 
    android:layout_width="150px" 
    android:layout_height="wrap_content"  
    android:layout_gravity="bottom" 
    android:layout_marginBottom="1px">
</Button>

</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在这段代码中,正如您所看到的,在线性布局中有一个标题,2个线性布局和2个按钮.我要做的是将2个按钮居中.无论我做什么,我都无法让2个按钮在底部居中,高度为60px.

最后,我试图使文本在垂直和水平方向上居中,并使底部的2个按钮水平居中.我需要改变什么?

下面是布局编辑器中的图片. 替代文字

jwr*_*lub 6

内部线性布局上,设置layout_gravity.

这是一个解决方案

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    >
<TextView 
    android:text="Title" 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30dip" 
    android:textStyle="bold" 
    />

    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="60dip"
        android:layout_gravity="bottom|center_horizontal"
        android:layout_marginBottom="1dip"
        >

    <Button 
        android:text="Choose a Story" 
        android:id="@+id/choose" 
        android:layout_width="0dip" 
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

    <Button 
        android:text="Info" 
        android:id="@+id/info" 
        android:layout_width="0dip"
        android:layout_weight="1" 
        android:layout_height="wrap_content"
        />

    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

通常,您应该设置最外面的组件(容器)的样式,然后相应地定位其所有子项.作为一方而言,这种布局只需使用一个(或一对,具体取决于您正在尝试做什么)或FrameLayouts,这将显着减少布局开销.虽然没有什么LinearLayout,这令人惊讶的计算量很大.