#android #android-edittext
#Android #android-edittext
Вопрос:
Я создаю динамический макет, который содержит редактируемый текст. Я хочу сделать этот текст редактирования прокручиваемым.
questionEntry.setMaxLines(1);
questionEntry.setVerticalScrollBarEnabled(true);
questionEntry.setMovementMethod(new ScrollingMovementMethod());
Используя этот код, я сделал свой редактируемый текст прокручиваемым. Но проблема в том, когда я что-то печатаю. Если он дойдет до конца редактируемого текста, он перестанет вводить мой текст и не перейдет автоматически к следующей строке. Если я нажму клавишу ввода, он подскочит. Я хочу сделать это автоматическим.
Комментарии:
1. Зачем ты это делаешь
setMaxLines(1);
?2. К сожалению, это не сработало для меня, установив эти методы программно.
Ответ №1:
Я знаю, что на этот вопрос уже есть ответ, но если вы хотите получить тот же результат с помощью XML, измените
android:inputType="text"
Для
android:inputType="textMultiLine"
для текста редактирования с возможностью вертикальной прокрутки.
Ответ №2:
questionEntry.setScroller(new Scroller(myContext));
questionEntry.setMaxLines(1);
questionEntry.setVerticalScrollBarEnabled(true);
questionEntry.setMovementMethod(new ScrollingMovementMethod());
я внес некоторые изменения в свой предыдущий код.
выше опубликован мой новый код.
это работает…спасибо за все
Комментарии:
1. Я не думаю, что вызов setScroller() необходим — просто вызов setMovementMethod().
2. Это не работает для EditTexts с setKeyListener (null) или вообще.
3. К сожалению, это не сработало для меня, установив эти методы программно. Я также безуспешно пытался вложить представление EditText в виджет NestedScrollView.
4. не работает, проголосуйте против.
Ответ №3:
Попробуйте это, надеюсь, это поможет
questionEntry.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.inputFormComments) {
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction() amp; MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
}
return false;
}
});
Комментарии:
1. Работает нормально, теперь можно прокручивать
2. Большое вам спасибо! Работает. Не понимаю, почему так сложно сделать EditText прокручиваемым…
3. должно было набрать больше голосов, из всех вещей, которые у меня сработали
4. Идеальный. Кстати, если ваш EditText находится в RecyclerView, вы можете добавить OnFocusChangedListener в ET и сделать это «RecyclerView.setNestedScrollingEnabled(!hasFocus));» Это остановит прокрутку recyclerview, когда вы захотите, чтобы edittext прокручивался.
5. Идеальное решение
Ответ №4:
Просто дайте ему знать, что он должен действовать таким образом с помощью:
android:isScrollContainer="true"