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.

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.

  • Cómo eliminar el espacio superior y inferior en la vista de texto de Android
  • Cómo actualizar un TextView mientras se realiza un bucle en Android?
  • El texto de TextView desaparece cuando se gira el dispositivo
  • Cómo establecer dinámicamente altura de texto altura android
  • Selector de texto no funciona
  • Dos elementos XML con id id
  • Cómo configurar mulitple clic evento para la única textview?
  • El identificador de recursos no puede ser una cadena vacía (en 'texto' con valor '?') En el atributo textAppearance
  • Escribe un párrafo con textview en Android
  • Android: obtener utilizando Textview.SetText (characterSequence)
  • Cómo cambiar el texto en Android TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.