Как сделать edittext в Android прокручиваемым?

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