Включение полосы прокрутки в EditText Android - PullRequest
6 голосов
/ 01 декабря 2010

У меня есть EditText на моем макете.Ниже приведены атрибуты, которые у меня есть:

<EditText
   android:id="@+id/entryIdea"
   android:layout_width="fill_parent"
   android:layout_height="225sp"
   android:gravity="top"
   android:background="@android:drawable/editbox_background"
   android:scrollbars="vertical"/>

Однако я вижу полосу прокрутки, но не могу прокрутить ее с помощью мыши / касания.Я думал, что это может работать, если я поставлю соответствующий слушатель, так как он работает на TextView.По-видимому, это не так.

EditText et = (EditText)findViewById(R.id.entryIdea);
et.setMovementMethod(new ScrollingMovementMethod());

Можете ли вы, ребята, помочь мне в этом?

Большое спасибо заранее.Sammy

Ответы [ 7 ]

7 голосов
/ 05 января 2012

В своем XML попробуйте установить высоту EditText не в layout_height, а вместо этого использовать атрибут android:lines (кстати, использование sp обычно не рекомендуется при установке размера для чего-либо, кроме размера шрифта. Использование dp /падение в этом случае более естественно).

Тем временем установите layout_height в wrap_content.В противном случае XML-файл, который вы представили (с упомянутыми мною изменениями), работал нормально для меня, даже без указания метода перемещения в коде.

И, конечно, полоса прокрутки появится, когда фактическое количество строк текстав EditText больше, чем указано в атрибуте android: lines.

3 голосов
/ 31 марта 2014
editText1.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View view, MotionEvent event) {
            // TODO Auto-generated method stub
            if (view.getId() ==R.id.editText1) {
                view.getParent().requestDisallowInterceptTouchEvent(true);
                switch (event.getAction()&MotionEvent.ACTION_MASK){
                case MotionEvent.ACTION_UP:
                    view.getParent().requestDisallowInterceptTouchEvent(false);
                    break;
                }
            }
            return false;
        }
    });
3 голосов
/ 17 декабря 2013

см. Ссылку

 EditText dwEdit = (EditText) findViewById(R.id.DwEdit);       
 dwEdit.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View view, MotionEvent event) {
                // TODO Auto-generated method stub
                if (view.getId() ==R.id.DwEdit) {
                    view.getParent().requestDisallowInterceptTouchEvent(true);
                    switch (event.getAction()&MotionEvent.ACTION_MASK){
                    case MotionEvent.ACTION_UP:
                        view.getParent().requestDisallowInterceptTouchEvent(false);
                        break;
                    }
                }
                return false;
            }
        });
2 голосов
/ 22 декабря 2013

используйте этот атрибут:

 android:maxLines="5"

для вашего XML-файла.Тогда атрибут scrollbars будет работать.

1 голос
/ 12 января 2016
editText1.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View view, MotionEvent event) {
        // TODO Auto-generated method stub
        if (view.getId() ==R.id.editText1) {
            view.getParent().requestDisallowInterceptTouchEvent(true);
            switch (event.getAction()&MotionEvent.ACTION_MASK){
            case MotionEvent.ACTION_UP:
                view.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }
        }
        return false;
    }
});
0 голосов
/ 20 августа 2016

в файле XML:

андроида: MaxLines = "5" android: scrollbars = "vertical"

и в файл .java добавьте

edt_text.setMovementMethod (new ScrollingMovementMethod ());

0 голосов
/ 24 ноября 2014

использование вашего xml файла:

android:maxLines="5"
...