Я пытаюсь добавить разрыв строки в TextView.
Я пытался предложить \ n, но это ничего не значит. Вот как я устанавливаю свои тексты.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
Это моя строка: <string name="sample_string">some test line 1 \n some test line 2</string>
Это должно показать так:
some test line 1
some test line 2
Но это показывает , как так: some test line 1 some test line 2
.
Я что-то упускаю?
android
textview
line
line-breaks
dropsOfJupiter
источник
источник
\n
это действительно лучший способ. github.com/paour/StringResourceTestHtml.fromHtml()
функцию и просто используйтеtxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Ответы:
\n
у меня работает, вот так:источник
\n
один будет работать ... Не думай, что\r
он что- то делает.ок разобрался
так что обтекание в CDATA необходимо и разрывы добавляются внутрь как HTML-теги
источник
Html.fromHtml()
, что немного для простого перевода строки и не очень хорошо поддерживается поставщиками переводов.Версия Android 1.6 не распознает \ r \ n. Вместо этого используйте: System.getProperty ("line.separator")
источник
Разрыв строки (\ n) работает только в том случае, если вы указали значение строкового ресурса в кавычках:
Это не будет делать разрывы строк, если вы поставите его без кавычек, как это:
да, это так просто
источник
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
Попробовал все вышеизложенное, провел собственное исследование, в результате чего было найдено следующее решение для отображения escape-символов перевода строки:
Используя метод замены, вам нужно отфильтровать экранированные переводы строк (например, '\\ n')
Только тогда каждый экземпляр escape-символа перевода строки '\ n' будет преобразован в фактический перевод строки.
Для этого примера я использовал базу данных Служб Google Scripting noSQL (ScriptDb) с данными в формате JSON.
Ура: D
источник
Это сработало для меня
источник
Есть два способа обойти это. Если вы используете вашу строку как необработанную строку, вам нужно использовать символ новой строки. Если вы используете его как HTML, например, анализируя его
Html.fromString
, второй вариант лучше.1) символ новой строки
\n
2) HTML-тег новой строки
<br>
или<br />
источник
<br>
,<u>
,<b>
И<i>
теги разрешены в строковых ресурсах без побега, и правильно применяютсяTextView.setText(resId)
. Они удаляются при использованииContext.getString(resId)
, если не обернуты вCDATA
раздел.Это сработало для меня, может быть, кто-то найдет это полезным:
источник
Если вы используете XML для объявления вашего использования TextView
android:singleLine = "false"
или в Java, используйтеtxtSubTitle.setSingleLine(false);
источник
Используется Android Studio 0.8.9. Единственный способ, сработавший для меня, это использование
\n
. Ни упаковка с CDATA, ни<br>
или не<br />
работали.источник
Я использую следующее:
источник
очень просто: используйте "\ n"
\ n соответствует ASCII char 0xA, который является 'LF' или переводом строки
\ r соответствует ASCII char 0xD, который является 'CR' или переводом каретки
это восходит к самым первым пишущим машинкам, где вы можете выбрать только перевод строки (и введите только строку ниже) или перевод строки + возврат каретки (который также перемещается в начало строки)
в Android / java \ n соответствует возврату каретки + перевод строки, так как в противном случае вы просто «перезаписали бы» ту же строку
источник
Попробуйте перепроверить ваши локализации. Возможно, вы пытаетесь редактировать один файл (локализация), но на самом деле программа использует другой, как в моем случае . Системный язык по умолчанию русский, а я пытаюсь редактировать английскую локализацию.
В моем случае, рабочим решением является использование "\ n" в качестве разделителя строк:
источник
Также вы можете добавить
"<br/>"
вместо \ n.Это HTML экранированный код для <br/>
И тогда вы можете добавить текст в TexView:
источник
Html.fromHtml(textForTextView).toString()
--- И тогда вы можете сделать:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- Другими словами, просто используйте<br/>
непосредственно внутриfromHtml()
<br/>
должно быть достаточно, чтобы информация о стиле не удалялась. (на основании официальной документации)Вы также можете использовать String-Editor в Android Studio, он автоматически генерирует линейные тормоза и тому подобное ...
источник
Как
Html.fromHtml
устаревший, я просто использовал этот код, чтобы получить String2 в следующей строке.,
источник
Самый простой способ сделать это - перейти к значениям / строкам (в папке ресурсов)
Объявите строку там:
И в вашем конкретном XML-файле просто вызовите строку как
источник
Я нашел другой метод: необходимо добавить атрибут " android: maxWidth =" 40dp " ". Конечно, это может не работать идеально, но это дает разрыв строки.
источник
\ n не работал для меня. Я смог решить проблему, изменив xml на text и создав текстовое свойство textview, как показано ниже.
Надеюсь, это поможет тем, кто сказал, что \ n не работает для них.
источник
\n
персонажи.Я читаю свой текст из файла, поэтому я выбрал немного другой подход, так как добавление \ n к файлу привело к появлению \ n в тексте.
источник
Может быть, вы можете вставить lf в текст, но он не отображается? Убедитесь, что у вас достаточно высоты для контроля. Например:
Верный:
Может быть не прав
источник
В моем случае я решил эту проблему, добавив следующее:
источник
попробуй это:
источник
Я чувствую, что необходим более полный ответ, чтобы описать, как это работает более тщательно.
Во-первых, если вам нужно расширенное форматирование, посмотрите руководство по использованию HTML в строковых ресурсах .
Затем вы можете использовать
<br/>
и т. Д. Однако, это требует установки текста с помощью кода.Если это простой текст, есть много способов избежать символа новой строки (LF) в статических строковых ресурсах .
Заключение строки в двойные кавычки
Самый чистый способ - заключить строку в двойные кавычки.
Это сделает так, что пробел интерпретируется точно так, как он выглядит, а не свернут.
Тогда вы можете просто использовать символ новой строки в этом методе (не используйте отступы).
Обратите внимание, что некоторые символы требуют специального экранирования в этом режиме (например,
\"
).Экранирующие последовательности ниже также работают в режиме кавычек.
При использовании одной строки в XML для представления многострочных строк
Самый элегантный способ избежать перехода на новую строку в XML - это использовать его кодовую точку (10 или 0xA в шестнадцатеричном формате), используя его сущность XML / HTML


или
. Это способ XML избежать любого символа .Однако, похоже, это работает только в режиме кавычек.
Другой способ - просто использовать
\n
, хотя, по моему мнению, это негативно влияет на удобочитаемость (поскольку это не специальная escape-последовательность в XML, Android Studio не выделяет ее).Не включайте новую строку или любые пробелы после любой из этих escape-последовательностей, так как это будет интерпретироваться как дополнительное пространство.
источник
Используйте разрыв текста следующим образом (\ n):
источник