Niaz
Niaz

Reputation: 564

how to place editText on the bottom of screen and to make it's height expandable

Well, there are many examples how to make height of editText expandable, if a few lines were entered. But my editText should be on the bottom of screen. And my editText is not expandable now.

enter image description here

My code is here:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          >

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/scroll"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:orientation="vertical"
            android:layout_weight="12"
            >
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:id="@+id/linear"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:orientation="vertical"
            >
        </LinearLayout>
    </ScrollView>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              >
        <EditText
            android:id="@+id/editMessage"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:inputType="textMultiLine|textCapSentences"
            android:minLines="3"
            android:gravity="top|left"
            android:maxLines="5"
            android:layout_gravity= "center_vertical|center_horizontal"
            android:textColor="@color/text1"
            android:layout_weight="5"
            android:background="@drawable/edit"
            android:scrollHorizontally="false"
            />
        <Button
            android:id="@+id/buttonSend"
            android:text='>'
            android:gravity="center"
            android:layout_gravity= "center_vertical|center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:background="@drawable/button_normal"
            />

    </LinearLayout>
</LinearLayout>

Any ideas please? Thanks!

Upvotes: 1

Views: 5491

Answers (2)

Naveen Kumar
Naveen Kumar

Reputation: 86

Use the below snippet code, it worked for me. The EditText will expand up to 5 because you had given android:maxLines="5"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="12"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editMessage"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:background="@drawable/edit"
            android:gravity="top|left"
            android:inputType="textMultiLine|textCapSentences"
            android:maxLines="5"
            android:minLines="3"
            android:scrollHorizontally="false"
            android:textColor="@color/text1" />

        <Button
            android:id="@+id/buttonSend"
            android:text='>'
            android:gravity="center"
            android:layout_gravity= "center_vertical|center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:background="@drawable/button_normal"/>
    </LinearLayout>

</LinearLayout>

Upvotes: 0

Abdallah Alaraby
Abdallah Alaraby

Reputation: 2249

For this case it's better to use RelativeLayout instead of LinearLayout. Try the following code:

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

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/ll_send_message"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/ll_send_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editMessage"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_gravity="center_vertical|center_horizontal"
            android:layout_weight="5"
            android:background="@drawable/edit"
            android:gravity="top|left"
            android:inputType="textMultiLine|textCapSentences"
            android:maxLines="5"
            android:minLines="3"
            android:scrollHorizontally="false"
            android:textColor="@color/text1" />

        <Button
            android:id="@+id/buttonSend"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:background="@drawable/button_normal"
            android:gravity="center"
            android:text="send"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

</RelativeLayout>

Upvotes: 5

Related Questions