2010-11-20 14 views

Respuesta

878

Por defecto, todos los widgets EditText en Android son de líneas múltiples.

Aquí hay un código de ejemplo:

<EditText 
    android:inputType="textMultiLine" <!-- Multiline input --> 
    android:lines="8" <!-- Total Lines prior display --> 
    android:minLines="6" <!-- Minimum lines --> 
    android:gravity="top|left" <!-- Cursor Position --> 
    android:maxLines="10" <!-- Maximum Lines --> 
    android:layout_height="wrap_content" <!-- Height determined by content --> 
    android:layout_width="match_parent" <!-- Fill entire width --> 
    android:scrollbars="vertical" <!-- Vertical Scroll Bar --> 
/> 
+3

¿Hay una manera de tener inputType establece en textMultiLine y imeOptions a actionSend? Veo una tecla Intro en el teclado S4 en lugar de enviar cuando configuro inputType a textMultiLine e imeOptions a actionSend. – user484691

+1

Para "textMultiLine e imeOptions" ver http://stackoverflow.com/questions/5014219/multiline-edittext-with-done-softinput-action-label-on-2-3 – TOMKA

+1

Una cosa a tener en cuenta, agregar un 'inputType' niega al menos los atributos 'lines' y' minLines'. Tenía 'inputType =" phone "' y los atributos de las líneas no tenían ningún efecto – ono

183

Puede que le resulte mejor utilizar:

<EditText 
... 
android:inputType="textMultiLine" 
/> 

Esto se debe a android: SingleLine está en desuso.

+7

+1, 'android: singleLine' no funciona en Android 3.0 –

+0

La respuesta de Sharduls debería funcionar con Apis moderna. Ya que eliminaron la parte obsoleta 'singleLine' de su respuesta (hace mucho tiempo). Con respecto a la pregunta en sí, esa es la parte más importante de su respuesta. – Knossos

9

Esta es la forma en que usé y está funcionando bien también. Espero, esto ayudaría a alguien.

<EditText 
    android:id="@+id/EditText02" 
    android:gravity="top|left" 
    android:inputType="textMultiLine" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:lines="5" 
    android:scrollHorizontally="false" 
/> 

¡Salud! ...Gracias.

34

Esto funciona para mí, en realidad estos 2 atributos son importantes: inputType y líneas. Además, es posible que tenga una barra de desplazamiento, el código siguiente muestra cómo hacer uno:

<EditText 
     android:id="@+id/addr_edittext" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="top|left" 
     android:inputType="textEmailAddress|textMultiLine" 
     android:lines="20" 
     android:minLines="5" 
     android:scrollHorizontally="false" 
     android:scrollbars="vertical" /> 
5

Todas estas son bonitas pero no funcionará en caso de que tenga su EditarTexto dentro de la vista de desplazamiento de nivel superior :) Quizás ejemplo más común es la vista "Configuración" que tiene tantos elementos que van más allá del área visible. En este caso, los pones a todos en la vista de desplazamiento para hacer la configuración desplazable. En caso de que necesite texto de edición desplazable de líneas múltiples en su configuración, su desplazamiento no funcionará.

+0

@Ukma perfecto me he enfrentado el mismo problema – Erum

7

Pruebe esto, agregue estas líneas a su vista de edición de texto, agregaré la mía. asegúrese de que entiende que

android:overScrollMode="always" 
android:scrollbarStyle="insideInset" 
android:scrollbars="vertical" 

<EditText 
    android:inputType="textMultiLine" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText_newprom_description" 
    android:padding="10dp" 
    android:lines="5" 
    android:overScrollMode="always" 
    android:scrollbarStyle="insideInset" 
    android:minLines="5" 
    android:gravity="top|left" 
    android:scrollbars="vertical" 
    android:layout_marginBottom="20dp"/> 

y en su clase java hacer clic en listner a esta edición de texto de la siguiente manera, voy a añadir la mía, nombres chane de acuerdo a la suya.

EditText description; 
description = (EditText)findViewById(R.id.editText_newprom_description); 

description.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 

       view.getParent().requestDisallowInterceptTouchEvent(true); 
       switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){ 
        case MotionEvent.ACTION_UP: 
         view.getParent().requestDisallowInterceptTouchEvent(false); 
         break; 
       } 

       return false; 
      } 

     }); 

esto funciona bien para mí

0

Esto lo aprendí de http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/, aunque no me gusta el sitio web de mí mismo. Si quiere una línea múltiple PERO desea conservar el botón enter como un botón de publicación, establezca el "desplazamiento horizontal" de listview en falso.

android:scrollHorizontally="false"

Si no funciona en XML, haciendo obras mediante programación extrañamente.

listView.setHorizontallyScrolling(false);

3

Para desactivar el número de líneas que se asignó previamente en el tema atributo xml: uso android:lines="@null"

+1

Utilice la sección de comentarios para respuestas pequeñas/triviales –

0

Otra cosa ordenada que hacer es usar android:minHeight junto con android:layout_height="wrap_content".De esta manera puede establecer el tamaño de la edición cuando está vacía, y cuando el usuario ingresa cosas, se extiende de acuerdo con la cantidad de entradas del usuario, incluidas las líneas múltiples.

0
<EditText 
       android:hint="Address" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:inputType="textMultiLine|textNoSuggestions" 
       android:id="@+id/edittxtAddress" 
       android:layout_marginLeft="@dimen/textsize2" 
       android:textColor="@android:color/white" 
       android:scrollbars="vertical" 
       android:minLines="2" 
      android:textStyle="normal" /> 

y en la actividad para eliminar "\ n" es el usuario pulse nextLine

String editStr= edittxtAddress.getText().toString().trim(); 

MyString= editStr.replaceAll("\n"," "); 
0
<EditText 
      android:id="@id/editText" //id of editText 
      android:gravity="start" // Where to start Typing 
      android:inputType="textMultiLine" // multiline 
      android:imeOptions="actionDone" // Keyboard done button 
      android:minLines="5" // Min Line of editText 
      android:hint="@string/Enter Data" // Hint in editText 
      android:layout_width="match_parent" //width editText 
      android:layout_height="wrap_content" //height editText 
      /> 
Cuestiones relacionadas