-1

I have a linearlayout and in it another linearlayout.

How can I centre the son in its parent?

these didn't help:

android:layout_gravity="center_horizontal"

android:layout_gravity="center"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/app_widget_nodata_root"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:paddingTop="30dp"
    android:paddingBottom="30dp"
    android:background="@drawable/widget_bg_info1">

    <!--
        ========================================================================
        * Information layout - contains the explanation text on the background 
        ========================================================================
    -->


        <TextView
            android:id="@+id/text_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:text="@string/widget_nodata_title"
            android:textColor="@color/solid_white"
            android:paddingLeft="10dp"
            android:textSize="22sp" />

        <LinearLayout
            android:id="@+id/layout_buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:paddingTop="20dp"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="130dp"
                android:layout_height="wrap_content"
                android:background="@drawable/button_blue"
                android:clickable="true"
                android:gravity="center"
                android:orientation="horizontal"
                android:paddingLeft="5dp"
                android:paddingRight="5dp" >

                <TextView
                    android:id="@+id/text_btn_enter"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/widget_no_data_accept"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="130dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:background="@drawable/button_blue"
                android:clickable="true"
                android:gravity="center"
                android:orientation="horizontal"
                android:paddingLeft="5dp"
                android:paddingRight="5dp" >

                <TextView
                    android:id="@+id/text_btn_close"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/widget_no_data_close"
                    android:textColor="#000000" />
            </LinearLayout>
        </LinearLayout>

</LinearLayout>

I have tried the following, unsuccessfully:

 <LinearLayout
            android:id="@+id/layout_buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            android:paddingTop="20dp"
            android:orientation="horizontal" >

I prefer not to complicate things and to not add another layer of inner RelativeLayout

Here is my result:

enter image description here

4

4 回答 4

2

您可以尝试使用:

android:gravity="center"

在父布局中或

layout_gravity

在子布局中。

Gravity 和 layout_gravity 之间的区别在于,gravity 为内容或其子项定义视图内部的位置,而 layout_gravity 为视图本身定义视图外部的位置。

LinearLayout或者只是用 a替换父级RelatieLayout并使用

android:layout_centerInParent="true"

在孩子。

于 2013-07-24T14:14:45.217 回答
0

问题是:

        <LinearLayout
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"  -------------- need to remove
            android:background="@drawable/button_blue"
            android:clickable="true"
            android:gravity="center"
            android:orientation="horizontal"
            android:paddingLeft="5dp"
            android:paddingRight="5dp" >

            <TextView
                android:id="@+id/text_btn_close"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/widget_no_data_close"
                android:textColor="#000000" />
        </LinearLayout>
于 2013-07-25T08:36:28.230 回答
0

LinearLayout按顺序添加值,因此inner-LinearLayout's位置将基于前一个孩子的位置,但您可以将所有孩子居中outer-LinearLayout

于 2013-07-24T14:11:57.983 回答
0
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/app_widget_nodata_root"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:background="@drawable/background_with_logo"
    android:orientation="vertical"
    android:paddingBottom="30dp"
    android:paddingTop="30dp" >


 <LinearLayout
        android:id="@+id/layout_buttons"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingTop="20dp" >

或者你可以使用相对布局

于 2013-07-24T14:14:31.867 回答