Si configuro SingleLine = true en un widget EditText, obtengo un control de edición de línea única que no permite que el usuario inserte retornos duros (haciendo clic en Enter moves to el siguiente campo en lugar de insertar una nueva línea). Si no configuro SingleLine = true, el usuario puede insertar retornos duros.Android EditText con word-wrap pero no retornos duros
Si configuro layout_height = "wrap_content", el control EditText crecerá verticalmente para mostrar todo el texto. Sin embargo, solo hace esto si SingleLine no está configurado en verdadero.
Entonces, mi pregunta es, ¿es posible obtener el ajuste de palabras y el cambio de tamaño vertical, sin permitir que el usuario ingrese saltos de línea? Supongo que podría atrapar la tecla Enter, pero también tendría que atrapar otras formas de obtener una allí (copiar/pegar, ¿no sabes qué más?). ¿Hay una manera simple de hacer esto con la combinación correcta de propiedades?
Prefiero la redacción de palabras donde el usuario puede ver todo el texto, en comparación con el desplazamiento horizontal de un control de edición de una sola línea, pero realmente no quiero que piensen que pueden ingresar texto de líneas múltiples (y yo no quiero tener que apoyarlo). Supongo que podría convertir retornos duros en espacios cuando guarde los datos en mi base de datos, si es necesario (la aplicación heredada a la que sincronizo estos datos en la PC no puede manejar retornos duros).
tan útil. No sé por qué esto no se ofrece como un comportamiento integrado. – JulianSymes
Esto funciona porque Android establece automáticamente 'EditorInfo.IME_FLAG_NO_ENTER_ACTION' en vistas de texto de líneas múltiples. Puede simplificar esto para simplemente: 'InputConnection connection = super.onCreateInputConnection (outAttrs); outAttrs.imeOptions & = ~ (EditorInfo.IME_FLAG_NO_ENTER_ACTION); conexión de retorno; ' – Foxichu