Como colocar caracteres de espaço em um nome de string em XML?

174

Eu defini algumas strings no strings.xmlarquivo. Agora eu preciso colocar algum espaço extra entre alguns números na string. Quando digito caracteres de espaço extra, isso não aparece no aplicativo.

Antes:

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

E se eu colocar espaço extra como este:

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

Parece o mesmo no aplicativo. Como posso criar caracteres de espaço na string XML?

Andreas
fonte
Bem, parecia o mesmo nesta página também ... :) coisa é que eu quero algum espaço entre os números, como isso é possível ..?
Andreas
Use a formatação de código para preservar os espaços (e <>conteúdo) no SO. :)
Andrew Thompson

Respostas:

405

para usar espaço em branco no xml como uso de string &#160;. XML não ocupa espaço em branco como está. ele irá aparar o espaço em branco antes de configurá-lo. Portanto, use em &#160;vez de um espaço em branco único

Coleção K
fonte
1
Isso não funciona com o wrap_content de uma visualização de texto, quando o espaço ocorre no final do texto. A visualização de texto não mantém a largura ocupada pelo caractere 'espaço'.
toobsco42
28
Isso adicionará um espaço inquebrável. É diferente de um espaço regular e não funcionará bem com determinadas funções (XPath normalize-space, por exemplo). Tente usar &#032;(espaço regular) em vez de &#160;. @ toobsco42
shwartz
Eu tive que usar em &#160;vez de \u0020colocar um espaço sem quebra após o código de área em um número de telefone. Caso contrário, o número de telefone estava sendo quebrado no final da linha após o parêntese à direita do código de área.
mharper
& # 032; está ok se você precisar de 1 espaço. Se você colocar vários (& # 032; & # 032; ...) eles serão reduzidos a 1. Eu acho que é o mesmo comportamento de um espaço em branco normal, então parece inútil. Se encontrado também sugestão sobre o & # 009; (deveria ser um caractere de tabulação): não exibe nada. & # 160; funciona bem, é o que eu preciso, obrigado obrigado K.
herve-guerin
57

Insira \ u0020 diretamente no XML para um espaço em branco que você deseja preservar.

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

O Android não suporta manter os espaços no final da string no arquivo String.xml, portanto, se você quiser espaço após a string, precisará usar esse unicode entre as palavras.

\ u0020

É um caractere de espaço unicode.

saibaba vali
fonte
Isso funcionou para mim usando o Android Studio 3.6.2 compilado no Android 4.4. Obrigado.
Amor e paz - Joe Codeswell 15/04
11

Como já mencionado, a maneira correta de ter um espaço em um arquivo XML é usando \u0020qual é o caractere unicode para um espaço.

Exemplo:

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

Outras sugestões disseram usar &#160;ou &#032;mas há duas desvantagens para isso. A primeira desvantagem é que esses são caracteres ASCII, portanto você depende de algo como um TextView para analisá-los. A segunda desvantagem é que, &#160;às vezes, pode causar uma quebra estranha nos TextViews.

MShipman
fonte
7

Variantes de espaço:

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

| ESPAÇO ESPAÇO FINO | ESPAÇO DO CABELO |

Andrey
fonte
1
Este é o mais doce e impressionante
Abdul Waheed
6

Isso deve funcionar também. Use aspas para manter o espaço

<string name="spelatonertext3">"-4,  5, -5,   6,  -6,"</string>
pcodex
fonte
1
Esta é a resposta mais limpa (mais fácil de ler) na minha opinião. Infelizmente, a maioria das pessoas provavelmente não chega tão longe na lista de respostas antes de prosseguir.
DavidR 9/06
5

Coloque &#160;no arquivo string.xml para indicar um único espaço em um projeto Android.

maxxi
fonte
5

Você também pode usar os seguintes

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

Coloque qualquer coisa " "(cotação) com espaço, e deve funcionar

Surjit Singh
fonte
1
Colocar qualquer coisa em " "(citação) com o espaço, e ele deve funcionar: isto não está funcionando
Krunal Shah
3

De acordo com sua pergunta, se você deseja adicionar espaços mais de um em recursos de string, há muitas opções para adicionar espaços entre caracteres ou palavras:

Por padrão, um espaço que você pode adicionar diretamente no arquivo de recursos da string está funcionando bem. mas se conceder mais de um espaço no arquivo de recursos de sequência, ele excluirá esses espaços. por exemplo . -4, 5, -5, 6, -6,

  1. Se você deseja adicionar mais espaços extras dentro do arquivo de recursos de sequência, use: - i. adicionando unicode após caracteres como

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

ii.você pode usar "\ u0020"

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

Se você está tentando dar espaço entre 2 string OU no arquivo String do android, faça isso no seu arquivo string. Implemente isso antes do seu "Nome da string" que você deseja mostrar. \ u0020 \ u0020 Para ex. \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020Pagamento

Rakesh Jha
fonte
2

xml: space = "preserve"

Funciona como um encanto.

Edit: Errado. Na verdade, só funciona quando o conteúdo é composto apenas por espaços em branco.

Ligação

PauLEffect
fonte
1

Se a saída for HTML, vários espaços em HTML serão exibidos como um único espaço. Para evitar isso, use espaços sem quebra (xA0) em vez de espaços comuns.

Michael Kay
fonte
1

A única maneira de obter vários espaços no meio da string.

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

Before   After
drod
fonte
0

Você deseja que ele seja exibido como "-4, 5, -5, 6, -6" (dois espaços), você pode adicionar o seguinte código ao string.xml

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

  é exibir um espaço.

Hai Rom
fonte