39 votos

Android Word-Wrap EditText texto

He estado tratando de conseguir mi EditText cuadro de ajuste de línea, pero parece que no puede hacerlo.

He tratado con mucho más complicado, mientras que el desarrollo de aplicaciones Android, y este parece que debería ser un proceso fácil.

Sin embargo, el problema sigue, y tengo un cuadro de texto grande, que es sólo lo que me permite escribir texto en una línea, continuando en línea recta, de desplazarse horizontalmente como puedo ingresar texto.

Aquí está el código XML para el EditText objeto de mi archivo de diseño.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/myWidget48"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
 <ScrollView
    android:id="@+id/myScrollView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    >
    <LinearLayout
        android:id="@+id/widget37"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
    >

<EditText
        android:id="@+id/txtNotes"
        android:layout_width="300px"
        android:layout_height="120px"
        android:scrollbars="vertical"
        android:textSize="18sp"
        android:gravity="left"
        android:layout_marginTop="10dip"
        android:inputType="textCapSentences"
        >
    </EditText>
</LinearLayout>
</ScrollView>
</LinearLayout>

91voto

Bryan Hepburn Puntos 1047

Además de encontrar el origen del problema, he encontrado la solución. Si android:inputType es usado, entonces textMultiLine debe ser utilizado para habilitar multi-línea de apoyo. Además, el uso de inputType reemplaza el código android:singleLine="false". Si el uso de inputType, entonces, reiterar, textMultiLine debe ser utilizado o el EditText objeto sólo consiste en una línea, sin necesidad de ajuste.

Edit: Gracias Jacob Malliet para proporcionar más buenos consejos sobre esto. Se sugiere establecer el booleano scrollHorizontally propiedad en false, 'android:scrollHorizontally="false"'.

Ejemplo de código XML:

<EditText
    android:id ="@+id/edtInput"
    android:layout_width ="0dip" 
    android:layout_height ="wrap_content" 
    android:layout_weight ="1" 
    android:inputType="textCapSentences|textMultiLine"
    android:maxLines ="4" 
    android:maxLength ="2000" 
    android:hint ="@string/compose_hint"
    android:scrollHorizontally="false" />

9voto

Jacob Malliet Puntos 274

Ok me lo imaginé, debe establecer android:scrollHorizontally="false" de su EditText en el xml. Estoy bastante seguro de que esto debería funcionar.

4voto

Bryan Hepburn Puntos 1047

Me lo imaginé. La línea,

android:inputType="textCapSentences"

era el problema. Añadir esta línea a un EditText objeto de hacer que el objeto sea una sola línea EditText, y no dejar que las palabras abrigo, o permitir que un usuario pulse "Enter" para insertar un salto de línea o retorno de carro en el EditText.

4voto

Hesam Puntos 6415

Suponga que usted sólo quiere tener una línea a primera, a continuación, expanda a 5 líneas y desea tener un máximo de 10 líneas.

<EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/etMessageBox"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:autoLink="all"
                    android:hint="@string/message_edit_text_hint"
                    android:lines="5"
                    android:minLines="1"
                    android:gravity="top|left"
                    android:maxLines="10"
                    android:scrollbars="none"
                    android:inputType="textMultiLine|textCapSentences"/>

Aumentando android:lines puede definir ampliar el número de líneas.

4voto

San Puntos 346

Acompañando la totalidad de la actividad de desplazamiento de la vista y la colocación de la siguiente edición de texto con esquema lineal trabajó como un encanto para mí.

La edición de texto de desplazamiento en sí verticalmente la tecla enter, el código de la siguiente manera

<EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:hint="Enter somehting"
            android:inputType="textMultiLine"
            android:maxLength="2000"
            android:maxLines="6"
            android:scrollHorizontally="false"
            android:scrollbars="vertical" > 

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X