2010-11-30 9 views
6

Tengo un EditText en mi diseño. A continuación se presentan los atributos que tengo actualmente:Activación de la barra de desplazamiento en EditText Android

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

Sin embargo, puedo ver la barra de desplazamiento, pero no puede desplazarse con el ratón/el tacto. Pensé que podría funcionar si pongo el oyente correspondiente ya que funciona en TextView. Aparentemente, no lo es.

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

¿Pueden ayudarme en esto?

Muchas gracias de antemano. Sammy

+2

tiene que ir a través de sus preguntas anteriores y marcar la mejor respuesta como la correcta. –

+0

Debería ser reemplazable una vez que tenga suficientes líneas en EditText por lo que debe desplazarse. No necesita agregar el oyente para que funcione. ¿Has intentado completarlo con muchas líneas de texto? – Juhani

Respuesta

7

En el código XML intente ajustar la altura EditText no en layout_height, sino más bien utilizar android:lines atributo (por cierto, el uso de SP no suele ser una buena práctica cuando se establece un tamaño para nada más que el tamaño de fuente. El uso de dp/dip es más natural en este caso).

Mientras tanto, establece layout_height en wrap_content. De lo contrario, el XML que presentó (con los cambios que he mencionado) funcionó bien incluso sin especificar el método de movimiento en el código.

Y por supuesto, la barra de desplazamiento aparecerá cuando la cantidad real de líneas de texto en EditText sea mayor que la indicada en el atributo android: lines.

+0

Solo para el registro, como señaló Coryffaeus (buen apodo por cierto), las barras de desplazamiento solo se mostrarán si configuras el atributo 'scrollbars' y superas el número de líneas especificadas. en 'líneas', sin embargo, siempre se desplazará incluso si no lo configuró. –

3

refieren este link

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

uso esto:

android:maxLines="5" 

atributo para el archivo XML. Entonces el atributo scrollbars funcionará.

3
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

su utilización archivo xml:

android:maxLines="5" 
1
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

en el archivo xml uso:

androide: maxLines = "5" android: barras de desplazamiento = "vertical"

y en el archivo .java agregar

edt_text.setMovementMethod (new ScrollingMovementMethod());

Cuestiones relacionadas