¿Cómo poner caracteres de espacio en un nombre de cadena en XML?

174

He definido algunas cadenas en el strings.xmlarchivo. Ahora necesito poner algo de espacio extra entre algunos números en la cadena. Sin embargo, cuando escribo caracteres de espacio extra, esto no se muestra en la aplicación.

Antes de:

<string name="spelatonertext3">-4, 5, -5, 6, -6,

Y si pongo espacio extra como este:

<string name="spelatonertext3">-4,  5, -5,   6,  -6,

Simplemente se ve igual en la aplicación. ¿Cómo puedo hacer que los caracteres de espacio en la cadena XML?

Andreas
fuente
Bueno, se veía igual en esta página también ... :) Lo que quiero es un espacio entre los números, ¿cómo es eso posible?
Andreas
Use el formato de código para preservar los espacios (y el <>contenido) en SO. :)
Andrew Thompson

Respuestas:

405

utilizar el espacio en blanco en xml como uso de cadena &#160;. XML no tomará espacios en blanco tal como están. recortará el espacio en blanco antes de configurarlo. Entonces use en &#160;lugar de un espacio en blanco

ρяσѕρєя K
fuente
1
Esto no funciona con wrap_content de una vista de texto, cuando el espacio se produce al final del texto. La vista de texto no mantiene el ancho que ocupa el carácter 'espacio'.
toobsco42
28
Esto agregará un espacio no rompible. Es diferente de un espacio normal y no funcionará bien con ciertas funciones (XPath normalize-space, por ejemplo). Intente usar &#032;(espacio regular) en lugar de &#160;. @ toobsco42
shwartz
Tuve que usar en &#160;lugar de \u0020colocar un espacio sin interrupción después del código de área en un número de teléfono. De lo contrario, el número de teléfono se estaba ajustando al final de la línea después del paréntesis final del código de área.
mharper
& # 032; está bien si necesitas 1 espacio. Si coloca varios (& # 032; & # 032; ...) se recortan a 1. Creo que es el mismo comportamiento que un espacio en blanco normal, por lo que parece inútil. Si se encuentra también sugerencia sobre & # 009; (se supone que es un carácter de tabulación): no muestra nada. & # 160; funciona bien, es lo que necesito, gracias ρяσѕρєя K.
herve-guerin
56

Inserte \ u0020 directamente en el XML para un espacio en blanco que le gustaría conservar.

<string name="spelatonertext3">-4, \u00205, \u0020\u0020-5, \u00206, \u0020-6,</string>
K_Anas
fuente
24

Android no admite mantener los espacios al final de la cadena en el archivo String.xml, por lo que si desea espacio después de la cadena, debe usar este unicode entre las palabras.

\ u0020

Es un personaje espacial unicode.

saibaba vali
fuente
Esto funcionó para mí usando Android Studio 3.6.2 compilado a Android 4.4. Gracias.
Amor y paz - Joe Codeswell
11

Como ya se mencionó, la forma correcta de tener un espacio en un archivo XML es usar \u0020cuál es el carácter unicode para un espacio.

Ejemplo:

<string name="spelatonertext3">-4,\u00205,\u0020-5,\u00206,\u0020-6</string>

Otras sugerencias han dicho usar &#160;o &#032;pero hay dos desventajas en esto. El primer inconveniente es que estos son caracteres ASCII, por lo que depende de algo como TextView para analizarlos. El segundo inconveniente es que a &#160;veces puede causar un ajuste extraño en TextViews.

MShipman
fuente
7

Variantes espaciales:

<string name="space_demo">|&#x20;|&#x2009;|&#x200A;|</string>

El | ESPACIO | ESPACIO DELGADO | ESPACIO PARA EL CABELLO |

Andrey
fuente
1
Esta es la más dulce e impresionante
Abdul Waheed,
6

Poner &#160;en el archivo string.xml para indicar un solo espacio en un proyecto de Android.

maxxi
fuente
6

Esto debería funcionar también. Usa comillas para mantener el espacio

<string name="spelatonertext3">"-4,  5, -5,   6,  -6,"</string>
pcodex
fuente
1
Esta es la respuesta más limpia (más fácil de leer) en mi opinión. Desafortunadamente, la mayoría de las personas probablemente no llegan tan abajo en la lista de respuestas antes de continuar.
DavidR
5

Puedes usar el siguiente también

<string name="spelatonertext3"> "-4,  5, -5,   6,  -6, "> </string>

Ponga cualquier cosa en " "(cita) con espacio, y debería funcionar

Surjit Singh
fuente
1
Ponga cualquier cosa en "" (cita) con espacio, y debería funcionar: ESTO NO FUNCIONA
Krunal Shah
3

Según su pregunta, si desea agregar espacios más de uno en los recursos de cadena, hay muchas opciones para agregar espacios entre caracteres o palabras:

1.Por defecto, un espacio que puede agregar directamente en el archivo de recursos de cadena funciona bien. pero si da más de un espacio dentro del archivo de recursos de cadena, entonces excluye esos espacios. p.ej . -4, 5, -5, 6, -6,

  1. Si desea agregar más espacios adicionales dentro del archivo de recursos de cadena, utilice: - i. agregando unicode después del carácter como

        <string name="test">-4,&#160;&#160;5,&#160;&#160;-5,&#160;&#160;6,&#160;&#160;-6,</string>

ii.puedes usar "\ u0020"

<string name="test">-4,\u0020\u0020 5,\u0020\u00205 -5,\u0020\u00205 6,\u0020\u00205 -6,</string>
Sarage Chorage
fuente
3

Si está tratando de dar espacio entre 2 cadenas O en el archivo de cadena de Android, haga esto en su archivo de cadena. Implemente esto antes de su "Nombre de cadena" que desea mostrar. \ u0020 \ u0020 Por ej. \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020Pago

Rakesh Jha
fuente
2

xml: espacio = "preservar"

Funciona de maravilla.

Editar: Incorrecto. En realidad, solo funciona cuando el contenido se compone solo de espacios en blanco.

Enlace

PauLEffect
fuente
1

Si la salida es HTML, en HTML se muestran múltiples espacios como un solo espacio. Para evitar esto, use espacios que no se rompan (xA0) en lugar de espacios ordinarios.

Michael Kay
fuente
1

La única forma en que podría obtener múltiples espacios en medio de la cadena.

<string name="some_string">Before" &#x20; &#x20; &#x20;"After</string>

Before   After
drod
fuente
0

Desea que se muestre como "-4, 5, -5, 6, -6" (dos espacios), puede agregar el siguiente código a string.xml

<string name="spelatonertext3"> "-4,&#160;&#160;5,&#160;-5,&#160;&#160;6,&#160;&#160;-6,"</string>

  Es mostrar un espacio.

Hai Rom
fuente