如何在屏幕底部放置editText并使其高度可扩展

时间:2014-09-21 08:20:58

标签: android android-edittext

嗯,有很多例子如何使editText的高度可扩展,如果 输入几行。 但是我的editText应该在屏幕的底部。 而且我的editText现在无法扩展。

enter image description 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>

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:4)

对于这种情况,最好使用RelativeLayout代替LinearLayout。请尝试以下代码:

<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>

答案 1 :(得分:0)

使用下面的代码段,它对我有用。 EditText将扩展到5,因为你已经给了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>