为什么这个布局不居中?
Why is not center this 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>
不幸的是,图像在左侧,文本视图靠近图像。
我希望第二个线性布局在第一个布局中居中。我该怎么办?
android:layout_centerHorizontal="true"
仅适用于 RelativeLayouts。
您可以尝试将父布局设为 RelativeLayout。
或者,添加 layout_gravity="center_horizontal"
作为子布局的属性。
或者,添加 gravity="center_horizontal"
作为父布局的属性。
android:layout_centerHorizontal
仅适用于 RelativeLayout。
在 LinearLayout 中你应该使用 gravity
<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?
只需添加
android:gravity="center_horizontal"
到您的父布局,您是金色的...或钻石的。随便。
在您的子布局中分配 android:layout_gravity="center_horizontal"
,并在您的子布局中分配 imageView 和 textView android:layout_weight="1"
属性 以等分 space。
试试这个代码。
<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 也是图像高度的中心。所以这取决于你,在你的应用程序中是否需要这些东西。
这是我构建的操作栏布局:
<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>
不幸的是,图像在左侧,文本视图靠近图像。 我希望第二个线性布局在第一个布局中居中。我该怎么办?
android:layout_centerHorizontal="true"
仅适用于 RelativeLayouts。
您可以尝试将父布局设为 RelativeLayout。
或者,添加 layout_gravity="center_horizontal"
作为子布局的属性。
或者,添加 gravity="center_horizontal"
作为父布局的属性。
android:layout_centerHorizontal
仅适用于 RelativeLayout。
在 LinearLayout 中你应该使用 gravity
<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?
只需添加
android:gravity="center_horizontal"
到您的父布局,您是金色的...或钻石的。随便。
在您的子布局中分配 android:layout_gravity="center_horizontal"
,并在您的子布局中分配 imageView 和 textView android:layout_weight="1"
属性 以等分 space。
试试这个代码。
<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 也是图像高度的中心。所以这取决于你,在你的应用程序中是否需要这些东西。