如何在xml布局中对元素进行分组以在Android中进行对齐

时间:2015-01-14 07:25:54

标签: android eclipse view alignment

我在TextView布局中有ImageButtonxmlImageButton位于TextView右侧,我希望群组在屏幕上水平居中。我使用RelativeLayout

我该怎么办?

2 个答案:

答案 0 :(得分:2)

我假设您正在开发一个Android应用程序......如果是这样,可以使用此代码:

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

   <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
       android:layout_centerHorizontal="true"
       android:orientation="horizontal">

       <TextView
           android:id="@+id/headerText"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/hello_world"
           />

       <ImageButton
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:layout_centerHorizontal="true"
           android:layout_centerVertical="true"
           android:src="@drawable/ic_launcher" />
       </LinearLayout>


</RelativeLayout>

android:layout_centerInParent="true"会将项目放在RelativeLayout父级的中间 android:layout_centerHorizontal="true"只会水平居中项目。你可以删除你不需要的那个。

答案 1 :(得分:1)

一种优化方法,它不使用不必要的布局嵌套,并通过将图像合并到TextView中来减少视图计数:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    >
    <TextView
        android:id="@+id/headerText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerHorizontal="true"
        android:drawableRight="@drawable/ic_launcher"
        android:text="@string/hello_world"
    />
</RelativeLayout>

秘密是使用compund drawable android:drawableRight="@drawable/ic_launcher" 要以编程方式更改它,请使用setCompoundDrawablesWithIntrinsicBounds()