Как сделать многострочный edittext в андроиде

Я пытаюсь динамически создать текст редактирования с помощью LayoutParams.MATCHPARENT как для ширины, так и для высоты. Я пробовал следующий код, но он все еще не работает.

EditText editor = ....;
LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1);
editor.setLayoutParams(params);
editor.setGravity(Gravity.LEFT | Gravity.TOP);
editor.setBackgroundColor(Color.WHITE);
editor.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
editor.setTextColor(Color.BLACK);
//editor.setSingleLine(false);
editor.setFocusableInTouchMode(true);
editor.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE);
editor.setMaxLines(Integer.MAX_VALUE);
editor.setHorizontallyScrolling(false);
editor.setTransformationMethod(null);

Приведенный выше код позволяет мне ввести несколько строк, и на клавиатуре отображается кнопка «ВВОД», но когда я печатаю текст редактирования, текст редактирования прокручивается по горизонтали, если ширины недостаточно для отображения текста. Может ли кто-нибудь помочь мне, как сделать текст редактирования многострочным?


person user1553837    schedule 31.07.2012    source источник
comment
любые слова? у тебя получилось с этим? у меня такая же проблема   -  person nadavfima    schedule 01.10.2014


Ответы (4)


Попробуйте этот следующий код

editor.setSingleLine(false);
editor.setHorizontalScrollBarEnabled(false);
person koti    schedule 31.07.2012

Попробуйте этот код

    txt.setSingleLine(false);
    txt.setLines(14);
    txt.setMinLines(13);
    txt.setMaxLines(15);
    txt.setGravity(Gravity.LEFT | Gravity.TOP);
person Ajay Parmar    schedule 27.09.2013
comment
Привет, ваше сообщение было помечено как низкокачественное, вероятно, потому, что оно состоит исключительно из кода. Вы могли бы значительно улучшить свой ответ, объяснив, как именно и почему это отвечает на вопрос? - person Ben; 27.09.2013

Пытаться

android:scrollHorizontally="false"

для редактирования текста

person Hans Hohenfeld    schedule 31.07.2012

Добавьте строку ниже в свой код, это может вам помочь.

editor.setSingleLine(false);
person Dipak Keshariya    schedule 31.07.2012