2011-04-29 17 views
16

Estoy creando un diseño dinámico que contiene un texto de edición. Quiero hacer que este texto de edición sea desplazable.¿Cómo hacer edittext en Android desplazable?

questionEntry.setMaxLines(1); 
questionEntry.setVerticalScrollBarEnabled(true); 
questionEntry.setMovementMethod(new ScrollingMovementMethod()); 

Utilizando este código he hecho que mi texto de edición sea desplazable. Pero el problema es cuando estoy escribiendo algo. Si llega al final del texto de edición, dejará de escribir mi texto y no saltará automáticamente a la siguiente línea. Si presiono la tecla Enter, saltará. Quiero hacerlo automático.

+0

¿Por qué haces 'setMaxLines (1);'? – Klaus

+0

Desafortunadamente, esto no funcionó para mí al configurar estos métodos mediante programación. –

Respuesta

21
questionEntry.setScroller(new Scroller(myContext)); 
questionEntry.setMaxLines(1); 
questionEntry.setVerticalScrollBarEnabled(true); 
questionEntry.setMovementMethod(new ScrollingMovementMethod()); 

he hecho algunos cambios en mi código anterior.
anterior publicado es mi nuevo código.

que está trabajando ... gracias por todo

+2

No creo que la llamada setScroller() es necesario - sólo la llamada a setMovementMethod(). – greg7gkb

+1

Esto no funciona para EditTexts con setKeyListener (null), o en absoluto. –

+1

Desafortunadamente, esto no funcionó para mí al establecer estos métodos programáticamente. También intenté anidar la vista EditText en un widget NestedScrollView sin éxito. –

14

Sé que esta pregunta ya tiene una respuesta, pero si desea obtener el mismo resultado a través de XML, cambian

android:inputType="text" 

a

android:inputType="textMultiLine" 

para un EditarTexto verticalmente desplazable.

8

Prueba de esto, creo que sirve

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; 
    } 
}); 
+0

Trabajando bien ahora capaz de desplazarse –

+0

Muchas gracias! Trabajos. No entiendo, por qué es tan difícil hacer EditarTexto desplazable ... – DmitryKanunnikoff

+0

debería haber conseguido más votos, de todas las cosas que esta trabajado para mí –