在相对布局上对齐Button和EditText

时间:2011-09-15 09:04:09

标签: android android-relativelayout

我将此代码作为listview的页脚。它只是一个EditText和一个发送消息的按钮。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:orientation="vertical"
    android:layout_height="fill_parent" android:id="@+id/relativelayout_messages" android:gravity="right" 
    android:background="@drawable/fondomain" android:paddingTop="4dp">   

<ListView android:id="@+id/android:list" android:listSelector="@android:color/transparent"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:divider="@layout/linedivider" android:dividerHeight="8dp"
    android:cacheColorHint="#0000" android:paddingTop="5dp"  
    android:layout_alignParentTop="true" android:footerDividersEnabled="true" 
    android:paddingLeft="10dp" android:paddingRight="10dp"
    android:layout_above="@+id/InnerRelativeLayout"     
    android:fastScrollEnabled="true"
 />

<!-- footer -->
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/InnerRelativeLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginTop="10dp"
    android:background="@color/greytable"
    android:paddingTop="5dp"
    android:paddingRight="3dp"
    android:paddingLeft="3dp">

    <EditText
        android:id="@+id/et_sent_msg"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"           
        android:layout_toLeftOf="@+id/bt_sent_msg" >
    </EditText>

    <Button
        android:text="Enviar"
        android:id="@+id/bt_sent_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@layout/selector_button_msg"
        android:textSize="15dp"
        android:textStyle="bold"
        android:gravity="center"
        android:textColor="@color/black"           
        android:layout_alignParentRight="true" />
</RelativeLayout>

Ant这是按钮背景的形状

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
    <shape>
        <gradient
            android:startColor="#757202"
            android:endColor="#757202"
            android:angle="270" />    
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
        <stroke android:width="1dp" android:color="#919790"/>   
    </shape>
</item>

<item>        
    <shape>
        <gradient
            android:startColor="#FFF038"
            android:endColor="#FFFF6C"
            android:angle="270" />    
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />   
        <stroke android:width="1dp" android:color="#919790"/>                   
    </shape>
</item>

乍一看并不容易,但我的EdiText不能与我的按钮完全对齐。如你所见

enter image description here

2 个答案:

答案 0 :(得分:4)

你需要这样做:

  1. android:layout_alignParentBottom="true"设置为您的编辑文字和按钮。
  2. android:layout_alignParentLeft="true"设置为edittext。
  3. android:layout_toRightOf="@+id/edittextid"设为按钮。
  4. footer添加修改后的代码:

    <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/InnerRelativeLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="10dp"
        android:paddingTop="5dp"
        android:paddingRight="3dp"
        android:paddingLeft="3dp">
    
        <EditText
            android:id="@+id/et_sent_msg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@+id/bt_sent_msg" >
        </EditText>
    
        <Button
            android:text="Enviar"
            android:id="@+id/bt_sent_msg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:textStyle="bold"
            android:gravity="center"
            android:textColor="@color/black"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true" />
    </RelativeLayout>
    

答案 1 :(得分:0)

将对齐的文本编辑到父级的左下角。然后将按钮对齐编辑文本右侧,按钮顶部按钮编辑文本顶部和按钮底部编辑文本底部