如何使Android中的edittext可滚动?

and*_*irl 26 android android-edittext

我正在创建一个包含编辑文本的动态布局.我想让这个编辑文本可滚动.

questionEntry.setMaxLines(1);
questionEntry.setVerticalScrollBarEnabled(true);
questionEntry.setMovementMethod(new ScrollingMovementMethod());
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以滚动编辑文本.但问题是当我打字的时候.如果它到达编辑文本的末尾,它将停止键入我的文本而不会自动跳转到下一行.如果按下回车键,它将跳转.我想让它自动化.

and*_*irl 28

questionEntry.setScroller(new Scroller(myContext)); 
questionEntry.setMaxLines(1); 
questionEntry.setVerticalScrollBarEnabled(true); 
questionEntry.setMovementMethod(new ScrollingMovementMethod()); 
Run Code Online (Sandbox Code Playgroud)

我在之前的代码中做了一些更改.
上面发布的是我的新代码.

它的工作......感谢所有人

  • 我不认为setScroller()调用是必要的 - 只是调用setMovementMethod(). (2认同)
  • 这对带有 setKeyListener(null) 的 EditTexts 不起作用,或者根本不起作用。 (2认同)

Adv*_*t S 24

我知道这个问题已经得到了答案,但是如果你希望通过XML得到相同的结果,那就改变吧

android:inputType="text"
Run Code Online (Sandbox Code Playgroud)

android:inputType="textMultiLine"
Run Code Online (Sandbox Code Playgroud)

用于可垂直滚动的EditText.


Dee*_*pak 19

试试这个,希望它有帮助

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() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_UP:
                    v.getParent().requestDisallowInterceptTouchEvent(false);
                    break;
            }
        }
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)