ScrollView 下方的按钮位于顶部

Button below ScrollView comes on top

我很难调试一个非常简单的问题。我有一个 activity 的布局,其中有一个 EditTextEditText 下方的一个按钮来执行操作。问题是,我在 EditText 中输入长句子时,它曾经变高并且按钮被推到屏幕下方。这是我的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#231f20">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="#FAC80A"
        android:elevation="4dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/imageView176"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="30dp"
                android:src="@drawable/cta_ic_notifications_grey" />

            <TextView
                android:id="@+id/textView109"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="Help"
                android:textColor="#231f20"
                android:textSize="20sp" />
        </RelativeLayout>

    </android.support.v7.widget.Toolbar>

    <TextView
        android:id="@+id/textView22"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/toolbar"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="60dp"
        android:alpha="0.8"
        android:text="We are here to help! We have recently launched the app and it is in beta. Not all features may be working in an optimal manner.In the meantime, if you have any feedback, or if there is any help you need, please reach out to us:"
        android:textColor="#FFFFFF"
        android:textSize="17sp" />

    <ImageView
        android:id="@+id/imageView50"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="70dp"
        android:src="@drawable/help_contact_button_send_in_active" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView"
        android:layout_above="@+id/imageView50"
        android:layout_below="@+id/textView22">

            <EditText
                android:id="@+id/editText10"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:hint="How can we help you today?"
                android:inputType="textCapSentences|textMultiLine"
                android:textColor="#FFFFFF"
                android:textColorHint="#707070"
                android:theme="@style/EditTextStyle" />

    </ScrollView>

</RelativeLayout>

我想要的是,发送按钮应该始终在底部可见,无论我在 EditText 中键入多长的句子,它都应该滚动并限制在 header TextViewImageView 按钮。在这个特定的布局中,一旦我开始打字,发送按钮就会出现在最上面,我看不到我输入的任何内容,只有在关闭键盘后,我才能看到文本和发送按钮在它下面.

在滚动视图中您正在使用 Edittext 并且滚动视图具有高度 wrap_content,这就是它发生的原因。要解决此问题,您可以删除滚动视图并像这样定义 editText

<EditText
            android:id="@+id/add_task_notes"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="10dp"
            android:fontFamily="sans-serif-bold"
            android:hint="Notes"
            android:inputType="textCapSentences|textMultiLine"
            android:maxLines="5"
            android:scrollbars="vertical"
            android:textColor="@color/edit_text_color"
            android:textSize="@dimen/edit_text_font_size"></EditText>

此 Edittext 将提供可滚动文本和最大可见行数

如果你想让整个布局可滚动,那么将 ScrollView 作为你的父布局

你应该使用垂直的 LinearLayout

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" ></LinearLayout>

在滚动视图中

您的代码如下......

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="320dp"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>
</ScrollView>