0

我试图实现一个类似于环聊的消息框。如果在其中输入更多内容,我希望扩展编辑文本,右侧的按钮保留在右下角。

来自环聊的消息框

我目前的实现如下。如果编辑文本由于“alignParentTop”而扩展,右侧的按钮将向上移动。但是如果我将“alignParentBottom”设置为true,整个屏幕都会被这个相对布局占据。任何想法如何解决它

<RelativeLayout android:id="@+id/structured_relative_interaction"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="#E0E0E0">

    <ImageButton android:id="@+id/structured_imagebutton_takePhoto"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/save_structured_button"
        android:src="@drawable/take_photo"/>

    <EditText android:id="@+id/structured_edittext_answer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@id/structured_imagebutton_takePhoto"
        android:layout_margin="5dp"
        android:gravity="top"
        android:maxLines="5"
        android:padding="10dp"
        android:hint="@string/structured_hint"
        android:textColorHint="#B0B0B0"
        android:inputType="textCapSentences|textMultiLine">
    </EditText>

</RelativeLayout>
4

2 回答 2

1

我能够使用以下布局来实现它(图像和字符串的一些 id 已更改以使其可编译):

<!--suppress AndroidLintUselessParent, AndroidLintContentDescription -->
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <RelativeLayout
            android:id="@+id/structured_relative_interaction"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="bottom"
            android:background="#E0E0E0">

        <EditText
            android:id="@+id/structured_edittext_answer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/structured_imagebutton_takePhoto"
            android:layout_margin="5dp"
            android:gravity="bottom"
            android:maxLines="5"
            android:padding="10dp"
            android:hint="hint"
            android:textColorHint="#B0B0B0"
            android:inputType="textCapSentences|textMultiLine" />

        <ImageButton
            android:id="@+id/structured_imagebutton_takePhoto"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_alignBottom="@id/structured_edittext_answer"
            android:background="@drawable/ic_launcher" />
    </RelativeLayout>
</RelativeLayout>

将产生:

在此处输入图像描述

ExitText似乎它是and的常见问题RelativeLayout(至少,我以前见过一些类似的问题)。

于 2013-07-16T06:36:50.420 回答
0
        <EditText
            android:id="@+id/write_post"
            android:layout_width="match_parent"
            android:layout_height="85dip"
            android:ems="10"
            android:gravity="top"
            android:hint="@string/write_post"
            android:inputType="textMultiLine"
            android:textAppearance="?android:attr/textAppearanceSmall" >
        </EditText>

将 android:inputType 设置为 textMultiLine,如果文本超出其边界,android 会自动扩展 edittext。

于 2013-07-16T05:51:48.020 回答