Мне сложно отладить очень простую проблему. У меня есть макет действия, в котором есть EditText и кнопка под EditText для выполнения операции. Проблема в том, что я набирал длинные предложения в 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 и ImageView кнопка. В этом конкретном макете, как только я начинаю печатать, сверху появляется кнопка отправки, и я не вижу ничего, что набираю, только после закрытия клавиатуры я могу видеть текст и кнопку отправки под ней. .

0
Amit Tiwari 27 Фев 2016 в 11:16

2 ответа

Лучший ответ

Внутри 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
Awadesh 27 Фев 2016 в 08:31

Вы должны использовать вертикальный 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>
0
Rashiduzzaman Khan 27 Фев 2016 в 08:40