Подтвердить что ты не робот

Сделать EditText расти по мере его заполнения

Я знаю, что перед этим задавали разные вопросы, но я не могу найти ответ на вопрос. Я работаю над андроидным приложением, и я хочу, чтобы поле EditText расширялось по мере ввода пользователем в него. Сначала я хочу, чтобы он был минимальным размером и расширялся, если пользователь вводит больше, чем позволяет минимум. Вот мой код:

<ScrollView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:fillViewport="true" >

    <linearLayout
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:padding="5dp" >

        <linearLayout>
            ...content...
        </linearLayout>

        <linearLayout>
            ...content...
        </linearLayout>

        <EditText 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        android:lines="7"
        android:gravity="top" />

    </linearLayout>
</ScrollView>

Поле EditText находится внутри родительского элемента linearLayout внутри родительского ScrollView. Он выглядит отлично на экране, но когда я иду через 7-ю строку в текстовом поле редактирования, мне нужно использовать трекбол, чтобы вернуться в текстовое поле. Прокрутка экрана прокручивает весь экран. Может ли кто-нибудь дать мне несколько советов? Я попытался применить разные предложения к подобным вопросам, но никто не дал мне правильный ответ. Благодаря

4b9b3361

Ответ 1

Как @tozka заявила в комментариях, в файле макета укажите: android:minLines="" вместо android:lines="".

В Java: editText.setMinLines(int) вместо editText.setLines(int).

В С# (Mono для Android) editText.setMinLines(int) вместо editText.setLines(int).

Из Android docs:

public void setMinLines (int minlines)

Делает TextView по крайней мере таким большим количеством строк. Установка этого значения отменяет любую другую (минимальную) настройку высоты.