ScrollView下方的按钮位于顶部

时间:2016-02-27 08:16:37

标签: android android-layout android-edittext android-scrollview

我很难调试一个非常简单的问题。我有一个活动的布局,其中有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中键入多长时间,它都应滚动并限制在标题TextView和{{之间1}}按钮。在这个特殊的布局中,一旦我开始输入,发送按钮就会出现在顶部,我无法看到我输入的任何内容,只有在关闭键盘后,我才能看到文本并在其下方发送按钮。

2 个答案:

答案 0 :(得分:1)

在scrollview中你正在使用Edittext,而scrollview有高度wrap_content,这就是它发生的原因。要解决此问题,您可以删除scrollview并像这样定义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作为父布局

答案 1 :(得分:0)

您应该使用垂直LinearLayout

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

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

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