为什么不在这个布局中心?

时间:2015-02-27 13:43:00

标签: android android-layout

这是我的布局,是我构建的操作栏:

<LinearLayout
        android:orientation="horizontal"
        android:id="@+id/Layout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/button_blue_no_border">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:orientation="horizontal">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:background="@drawable/white"
                />
            <TextView
                android:id="@+id/textActionBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:text="@string/app_name"
                android:textStyle="bold"/>
            </LinearLayout>

    </LinearLayout>

不幸的是,图像在左侧,文本视图在图像附近。 我希望第二个线性布局在第一个布局中居中。我该怎么办?

5 个答案:

答案 0 :(得分:0)

android:layout_centerHorizontal="true"仅适用于RelativeLayouts。

您可以尝试将父布局设为RelativeLayout。

或者,添加layout_gravity="center_horizontal"作为子布局的属性。

或者,添加gravity="center_horizontal"作为父布局的属性。

答案 1 :(得分:0)

android:layout_centerHorizontal仅适用于RelativeLayout 在LinearLayout中,您应该使用gravity

答案 2 :(得分:0)

<RelativeLayout
        android:orientation="horizontal"
        android:id="@+id/Layout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/button_blue_no_border">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:orientation="horizontal">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:background="@drawable/white"
                />
            <TextView
                android:id="@+id/textActionBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:text="@string/app_name"
                android:textStyle="bold"/>
            </LinearLayout>

 </RelativeLayout>

或者看看How to align LinearLayout at the center of its parent?

答案 3 :(得分:0)

添加

android:gravity="center_horizontal"

到您的父布局,你是金色的......或钻石。不管。

答案 4 :(得分:0)

在子布局中指定android:layout_gravity="center_horizontal",并指定imageView和textView android:layout_weight="1"属性,以便在子布局中划分相等的空间部分。

试试这段代码。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/Layout1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_margin="10dp"
                android:orientation="horizontal" >

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/ic_launcher" />

                <TextView
                    android:id="@+id/textActionBar"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_weight="1"
                    android:text="Hello"
                    android:textStyle="bold" />
            </LinearLayout>


        </LinearLayout>

在TextView中,此行android:layout_gravity="center_vertical"定义textView也是图像高度的中心。因此,在您的应用程序中,您需要或不需要这些东西。