Выровнять кнопку и EditText на относительной компоновке - PullRequest
1 голос
/ 15 сентября 2011

У меня есть этот код в качестве нижнего колонтитула моего списка. Это всего лишь 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>

Муравей это форма для фона кнопки

<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 не полностью совпадает с моим Button. Как вы можете видеть

enter image description here

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Вам нужно сделать:

  1. Установите android:layout_alignParentBottom="true" для вашего текста редактирования и кнопки.
  2. Установите android:layout_alignParentLeft="true" для редактирования текста.
  3. Установите android:layout_toRightOf="@+id/edittextid" для кнопки.

Добавление измененного кода для 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>
0 голосов
/ 15 сентября 2011

Выровнять текст редактирования по левому нижнему углу родительского текста. Затем выровняйте кнопку справа от редактируемого текста и кнопку выравнивания сверху, чтобы отредактировать верхнюю часть текста, и кнопку снизу, чтобы отредактировать нижнюю часть текста

...