Prevenir salto de línea en TextView

En mi aplicación de Android tengo una vista de texto que muestra texto que contiene caracteres especiales. El TextView de alguna manera rompe automáticamente las cadenas en los caracteres '/' y '-'.

Por ejemplo, la cadena "aaaaaaa / bbb-ccccc / ddd" se muestra como

aaaaaaa/ bbb- ccccc/ ddd 

Sin embargo, me gustaría mostrarlo sin ningún tipo de salto de línea excepto el que está en los límites de la vista, es decir, como esto:

 aaaaaaa/bb bb-ccccc/d dd 

¿Hay alguna forma de desactivar los saltos de línea automáticos o de escapar de estos caracteres? Ya he intentado escapar con \ uFEFF sin éxito.

7 Solutions collect form web for “Prevenir salto de línea en TextView”

Mantenga su atributo textview

 android:layout_width="wrap_content" android:layout_height="wrap_content" 

Definir la cadena en string.xml

 <string name="Username"> aaaaaaa\/bb\nbb\-ccccc\/d\ndd</string> 

Tal vez esta es una solución: https://stackoverflow.com/a/22337074/3472905

He añadido la barra como se mencionó:

 public class WordBreakTransformationMethod extends ReplacementTransformationMethod { private static WordBreakTransformationMethod instance; private WordBreakTransformationMethod() {} public static WordBreakTransformationMethod getInstance() { if (instance == null) { instance = new WordBreakTransformationMethod(); } return instance; } private static char[] dash = new char[]{'-', '\u2011'}; private static char[] space = new char[]{' ', '\u00A0'}; private static char[] slash = new char[]{'/', '\u2215'}; private static char[] original = new char[]{dash[0], space[0], slash[0]}; private static char[] replacement = new char[]{dash[1], space[1], slash[1]}; @Override protected char[] getOriginal() { return original; } @Override protected char[] getReplacement() { return replacement; } } 

Probablemente puede utilizar el atributo Lines o su método de contraparte setLines (int)

No hay una solución lista y no hay nada como "ajustar texto por letras en TextView" la única manera de hacerlo de una buena manera es ampliar TextView y modificar BreakText de la pintura (String text, boolean measureForwards, float maxWidth, float [] measuredWidth) función.

Además, puede calcular el tamaño de TextView en píxeles, calcular el ancho de una letra en píxeles, a continuación, encontrar el número de letras (X) que caben en una línea y luego insertar linebreak después de cada X letras

He probado el código siguiente. Incluso puede convertirlo en una función:

  String specialString = "a/b/-c/dd"; String[] specialArray = specialString.split("/"); String str = ""; for(int i = 0; i < specialArray.length - 1; i++){ str = str + specialArray[i] + Character.toString((char) 47); } str = str + specialArray[specialArray.length - 1]; specialArray = str.split("-"); str = ""; for(int i = 0; i < specialArray.length - 1; i++){ str = str + specialArray[i] + Character.toString((char) 45); } str = str + specialArray[specialArray.length - 1]; textView.setText(str); 

Ahora el texto no escapa

Puede probar esto: "aaaaaaa" + "/" + "bbb-ccccc" + "/" + "ddd"

Puede calcular el tamaño de un texto de esta manera:

 String text = "This is my text"; Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); textPaint.setTextSize(14.0f); Rect bounds = new Rect(); textPaint.getTextBounds(text, 0, text.length(), bounds); bounds.width() // width in pixels bounds.height() // height in pixels 

Basándose en estos valores, puede romper el texto en pedazos e insertar caracteres de nueva línea.

  • Obtener el texto visible actual en la vista de texto
  • Android: ¿define TextView TextStyle mediante programación?
  • Campo o etiqueta oculto en TextView?
  • TextView: lineSpacingMultiplier y lineSpacingExtra también se aplica a la última línea
  • Cómo establecer dinámicamente altura de texto altura android
  • Cómo funciona autolink: map work
  • Cómo eliminar el espacio superior y inferior en la vista de texto de Android
  • Valor entero en TextView
  • Ellipsize de TextView no funciona en maxLines = 1
  • ¿Cómo puedo mostrar caracteres especiales (como & ndash;) en TextView?
  • Cómo alinear drawableLeft a la parte superior en lugar de centrarse en Android TextView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.