如何同时提供居中和相对布局

时间:2012-12-04 02:57:29

标签: android android-layout

这是我想要实现的布局。所以我知道如何居中和左右对齐,但是当我与RelativeLayout结合时,我没有得到理想的结果。除非添加了边距/填充,否则TextView都会向左移动。我有正确的左右中心公式,但是当我想在它们旁边放一些文字时它不起作用。

 <ImageView> <TextView>   <ImageView><TextView>     <ImageView><TextView>

这是我的布局(它只包含一个需要大量边距的文本,因为它是向左转:

  <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal">
    <ImageView android:id="@+id/reply_button" android:src="@drawable/icons_reply"
        android:layout_width="60dp" andorid_layout_alignParentLeft="true" android:layout_height="wrap_content" android:paddingRight="5dp"/>
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Reply"
     android:layout_alignLeft="@+id/reply_button" android:layout_marginLeft="50dip" android:textSize="12sp"/>
    <ImageView android:id="@+id/resend_button" android:src="@drawable/icons_resend"
        android:layout_width="60dp" android:layout_height="wrap_content" android:layout_centerInParent="true" android:paddingRight="5dp"/>
    <ImageView android:id="@+id/select_button"  android:focusableInTouchMode="false" android:focusable="false" android:layout_alignParentRight="true" android:src="@drawable/select_icon"
        android:layout_width="60dp" android:layout_height="wrap_content" android:paddingRight="5dp"/>
    </RelativeLayout>

2 个答案:

答案 0 :(得分:0)

每个ImageView左侧不需要TextView,只需在TextView左侧设置一个左边的coumpound drawable并将它们放在LinearLayout中}:

<LinearLayout
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content"
    <TextView
    ...
    android:drawableLeft="@drawable/yourimage"
    android:drawablePadding="3dp" //optional, if you want some padding
    android:gravity="center_vertical" // to center vertically the text and drawable
    weight="1" // use this in a LinearLayout so they will be 
               // uniformly distributed over the space
    ...
    />
</LinearLayout>

答案 1 :(得分:0)

您应该将它们嵌套在其他相对布局中,并将它们放在一个大的线性布局中。

<LinearLayout.....>

<RelativeLayout
android:weight=1>
<image>
<Text>
</RelativeLayout>

<RelativeLayout
android:weight=1
>
<image>
<Text>
</RelativeLayout>

<RelativeLayout
android:weight=1>
<image>
<Text>
</RelativeLayout>

</LinearLayout>