Estou tentando adicionar uma quebra de linha no TextView.
Eu tentei sugerir \ n, mas isso não faz nada. Aqui está como eu defino meus textos.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
Esta é a minha String: <string name="sample_string">some test line 1 \n some test line 2</string>
Deve mostrar assim:
some test line 1
some test line 2
Mas isso mostra assim: some test line 1 some test line 2
.
Estou esquecendo de algo?
android
textview
line
line-breaks
quedas de Jupiter
fonte
fonte
\n
é realmente o melhor caminho. github.com/paour/StringResourceTestHtml.fromHtml()
função e simplesmente usartxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Respostas:
\n
funciona para mim, assim:fonte
\n
trabalho vontade sozinho ... não acho que o\r
faz nada.ok entendi:
então envolva CDATA é necessário e quebras adicionadas dentro como tags html
fonte
Html.fromHtml()
, o que é um pouco demais para uma quebra de linha simples e não é bem suportado pelos provedores de tradução.A versão 1.6 do Android não reconhece \ r \ n. Em vez disso, use: System.getProperty ("line.separator")
fonte
Quebras de linha (\ n) funcionam apenas se você colocar o valor do recurso de string entre aspas como este:
Não haverá quebra de linha se você o colocar sem aspas como esta:
sim, é assim tão fácil.
fonte
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
Tentei tudo isso acima, fiz algumas pesquisas, resultando na seguinte solução para renderizar caracteres de escape de avanço de linha:
Usando o método de substituição, você precisa filtrar as alimentações de linha com escape (por exemplo, '\\ n')
Somente então cada instância dos caracteres de escape do feed de linha '\ n' é renderizada no feed de linha real
Neste exemplo, usei um banco de dados noSQL (ScriptDb) do Google Apps com dados formatados em JSON.
Saúde: D
fonte
Isso funcionou para mim
fonte
Existem duas maneiras de contornar isso. Se você usar sua sequência como uma sequência bruta, precisará usar o caractere de nova linha. Se você usá-lo como html, por exemplo, analisando-o
Html.fromString
, a segunda variante é melhor.1) Caractere de nova linha
\n
2) tag de nova linha HTML
<br>
ou<br />
fonte
<br>
,<u>
,<b>
E<i>
as tags são permitidos em recursos seqüência de caracteres sem escape, e são correctamente aplicado pelosTextView.setText(resId)
. Eles são removidos se estiverem em usoContext.getString(resId)
, a menos que sejam enrolados em umaCDATA
seção.Isso funcionou para mim, talvez alguém descubra isso útil:
fonte
Se você estiver usando XML para declarar seu uso do TextView
android:singleLine = "false"
ou em Java, usetxtSubTitle.setSingleLine(false);
fonte
Usado Android Studio 0.8.9. A única maneira de trabalhar para mim é usar
\n
. Nem embrulhar com CDATA nem<br>
ou<br />
funcionou.fonte
Eu uso o seguinte:
fonte
muito fácil: use "\ n"
\ n corresponde ao caractere ASCII 0xA, que é 'LF' ou avanço de linha
\ r corresponde ao ASCII char 0xD, que é 'CR' ou retorno de carro
isso remonta às primeiras máquinas de escrever, onde você pode optar por fazer apenas um avanço de linha (e digitar apenas uma linha mais baixa) ou um avanço de linha + retorno de carro (que também se move para o início de uma linha)
no Android / java, o \ n corresponde a um retorno de carro + alimentação de linha, caso contrário, você simplesmente 'substituirá' a mesma linha
fonte
Tente verificar suas localizações. Possível, você está tentando editar um arquivo (localização), mas na verdade programa usando outro, como no meu caso . O idioma padrão do sistema é o russo, enquanto eu estou tentando editar a localização em inglês.
No meu caso, a solução de trabalho é usar "\ n" como separador de linhas:
fonte
Você também pode adicionar em
"<br/>"
vez de \ n.É um código HTML escapado para <br/>
E então você pode adicionar texto ao TexView:
fonte
Html.fromHtml(textForTextView).toString()
--- E então você pode fazer:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- Em outras palavras, basta usar<br/>
diretamente dentro defromHtml()
<br/>
deve ser suficiente para garantir que as informações de estilo não sejam removidas. (com base na documentação oficial)Você também pode usar o Editor de Cordas do Android Studio, ele gera automaticamente freios de linha e coisas assim ...
fonte
Como
Html.fromHtml
obsoleto, simplesmente usei esse código para obter String2 na próxima linha..
fonte
A maneira mais fácil de fazer isso é acessar valores / strings (na sua pasta de recursos)
Declare uma string lá:
E no seu arquivo xml específico, basta chamar a string como
fonte
Encontrei outro método: É necessário adicionar o atributo " android: maxWidth =" 40dp " ". Obviamente, pode não funcionar perfeitamente, mas dá uma quebra de linha.
fonte
\ n não estava funcionando para mim. Consegui corrigir o problema alterando o xml para texto e criando a propriedade de texto textview como abaixo.
Espero que isso ajude aqueles que disseram que \ n não funcionaram para eles.
fonte
\n
caracteres ocultos lá.Como estou lendo meu texto de um arquivo, adotei uma abordagem um pouco diferente, pois adicionar \ n ao arquivo resultaria em \ n aparecendo no texto.
fonte
Talvez você seja capaz de colocar o lf no texto, mas ele não é exibido? Verifique se você tem altura suficiente para o controle. Por exemplo:
Corrigir:
Pode estar errado:
fonte
No meu caso, resolvi esse problema adicionando o seguinte:
fonte
tente isto:
fonte
Sinto que é necessária uma resposta mais completa para descrever como isso funciona de maneira mais completa.
Primeiramente, se você precisar de formatação avançada, consulte o manual sobre como usar HTML em recursos de string .
Então você pode usar
<br/>
, etc. No entanto, isso requer a configuração do texto usando o código.Se for apenas texto sem formatação, existem várias maneiras de escapar de um caractere de nova linha (LF) em recursos de cadeia estática .
Incluindo a cadeia entre aspas duplas
A maneira mais limpa é colocar a sequência entre aspas duplas.
Isso fará com que o espaço em branco seja interpretado exatamente como parece, não recolhido.
Em seguida, você pode simplesmente usar a nova linha normalmente neste método (não use recuo).
Observe que alguns caracteres requerem escape especial neste modo (como
\"
).As seqüências de escape abaixo também funcionam no modo entre aspas.
Ao usar uma linha única em XML para representar cadeias de linhas múltiplas
A maneira mais elegante de escapar da nova linha em XML é com seu ponto de código (10 ou 0xA em hexadecimal) usando sua entidade XML / HTML


ou
. Essa é a maneira XML de escapar de qualquer caractere .No entanto, isso parece funcionar apenas no modo citado.
Outro método é simplesmente usar
\n
, embora afete negativamente a legibilidade, na minha opinião (como não é uma sequência de escape especial em XML, o Android Studio não a destaca).Não inclua uma nova linha ou espaço em branco após qualquer uma dessas seqüências de escape, pois isso será interpretado como espaço extra.
fonte
Use quebra de texto como esta (\ n):
fonte