Próbuję dodać podział wiersza w TextView.
Próbowałem zaproponować \ n, ale to nic nie daje. Oto jak ustawiam swoje teksty.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
To jest mój ciąg: <string name="sample_string">some test line 1 \n some test line 2</string>
Powinien wyglądać tak:
some test line 1
some test line 2
Ale to pokazuje tak: some test line 1 some test line 2
.
Czy coś mi brakuje?
android
textview
line
line-breaks
dropsOfJupiter
źródło
źródło
\n
to rzeczywiście najlepszy sposób. github.com/paour/StringResourceTestHtml.fromHtml()
funkcję i po prostu użyćtxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Odpowiedzi:
\n
działa dla mnie tak:źródło
\n
zadziała ... Nie myśl, że\r
coś robi.ok, zrozumiałem:
więc zawijanie CDATA jest konieczne, a przerwy są dodawane w środku jako tagi html
źródło
Html.fromHtml()
, co jest trochę za dużo dla prostego podziału wiersza i nie jest dobrze obsługiwane przez dostawców tłumaczeń.Wersja 1.6 systemu Android nie rozpoznaje \ r \ n. Zamiast tego użyj: System.getProperty ("line.separator")
źródło
Podziały wierszy (\ n) działają tylko wtedy, gdy umieścisz wartość zasobu ciągu w cudzysłowie, jak to:
Nie zrobi podziałów wierszy, jeśli umieścisz go bez cudzysłowów w ten sposób:
tak, to takie proste.
źródło
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
Wypróbowałem wszystkie powyższe, przeprowadziłem własne badania, w wyniku których otrzymałem następujące rozwiązanie do renderowania znaków ucieczki z wysuwu linii:
Używanie zastąpić metodę trzeba filtr uciekł karetki (np „\\ n”)
Dopiero wtedy każde wystąpienie znaku zmiany znaczenia '\ n' nowego wiersza jest renderowane do właściwego nowego wiersza
W tym przykładzie użyłem bazy danych Google Apps Scripting noSQL (ScriptDb) z danymi w formacie JSON.
Pozdrawiam: D
źródło
To zadziałało dla mnie
źródło
Można to obejść na dwa sposoby. Jeśli używasz swojego ciągu jako nieprzetworzonego łańcucha, musisz użyć znaku nowego wiersza. Jeśli używasz go jako html, np. Parsując go z
Html.fromString
, drugi wariant jest lepszy.1) Znak nowego wiersza
\n
2) Tag HTML nowej linii
<br>
lub<br />
źródło
<br>
,<u>
,<b>
I<i>
tagi są dozwolone w zasobach ciąg bez ewakuacji i są właściwie stosowane przezTextView.setText(resId)
. Są zdejmowane, jeśli są używaneContext.getString(resId)
, chyba że są owinięte wCDATA
sekcję.U mnie to zadziałało, może ktoś okaże się pomocny:
źródło
Jeśli używasz XML do deklarowania użycia TextView
android:singleLine = "false"
lub w Javie, użyjtxtSubTitle.setSingleLine(false);
źródło
Użyto Android Studio 0.8.9. Jedynym sposobem, który zadziałał dla mnie, jest używanie
\n
. Ani opakowanie z CDATA, ani<br>
też nie<br />
działały.źródło
Używam następujących:
źródło
bardzo łatwe: użyj „\ n”
\ n odpowiada znakowi ASCII 0xA, czyli „LF” lub nowemu wierszowi
\ r odpowiada znakowi ASCII 0xD, co oznacza „CR” lub powrót karetki
pochodzi z pierwszych maszyn do pisania, gdzie można było wybrać tylko wysunięcie wiersza (i wpisanie tylko o wiersz niżej) lub przesunięcie wiersza + powrót karetki (co również przenosi się na początek wiersza)
w systemie Android / java \ n odpowiada znakowi powrotu karetki + przejściu do wiersza, tak jak w przeciwnym razie po prostu „nadpisałbyś” ten sam wiersz
źródło
Spróbuj dwukrotnie sprawdzić swoje lokalizacje. Możliwe, że próbujesz edytować jeden plik (lokalizację), ale w rzeczywistości programujesz używając innego, tak jak w moim przypadku . Domyślnym językiem systemu jest rosyjski, podczas gdy ja próbuję edytować angielską lokalizację.
W moim przypadku działającym rozwiązaniem jest użycie znaku „\ n” jako separatora linii:
źródło
Możesz także dodać
"<br/>"
zamiast \ n.Jest to kod ucieczki HTML dla <br/>
A potem możesz dodać tekst do TexView:
źródło
Html.fromHtml(textForTextView).toString()
--- A potem możesz zrobić:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- Innymi słowy, po prostu użyj<br/>
bezpośrednio w środkufromHtml()
<br/>
powinno wystarczyć, aby upewnić się, że informacje o stylu nie zostaną usunięte. (na podstawie oficjalnej dokumentacji)Możesz także użyć edytora ciągów w Android Studio, automatycznie generuje przerwy w linii i tym podobne ...
źródło
Jako
Html.fromHtml
przestarzały, po prostu użyłem tego kodu, aby uzyskać String2 w następnej linii..
źródło
Najłatwiej to zrobić, przechodząc do wartości / ciągów znaków (w folderze zasobów)
Zadeklaruj tam ciąg:
A w swoim konkretnym pliku xml po prostu wywołaj ciąg w stylu
źródło
Znalazłem inną metodę: konieczne jest dodanie atrybutu „ android: maxWidth =„ 40dp ” ”. Oczywiście może nie działać idealnie, ale powoduje przerwanie linii.
źródło
\ n nie działa dla mnie. Udało mi się rozwiązać ten problem, zmieniając XML na tekst i budując właściwość textview, jak poniżej.
Miejmy nadzieję, że pomoże to tym, którzy powiedzieli, że \ n im się nie udało.
źródło
\n
postacie.Czytam tekst z pliku, więc zastosowałem nieco inne podejście, ponieważ dodanie \ n do pliku spowodowało pojawienie się \ n w tekście.
źródło
Może jesteś w stanie umieścić lf w tekście, ale się nie wyświetla? Upewnij się, że masz wystarczającą wysokość do sterowania. Na przykład:
Poprawny:
Może się mylić:
źródło
W moim przypadku rozwiązałem ten problem dodając:
źródło
Spróbuj tego:
źródło
Użyj podziału tekstu w ten sposób (\ n):
źródło
Wydaje mi się, że potrzebna jest pełniejsza odpowiedź, aby dokładniej opisać, jak to działa.
Po pierwsze, jeśli potrzebujesz zaawansowanego formatowania, zapoznaj się z instrukcją, jak używać HTML w zasobach ciągów .
Następnie możesz użyć
<br/>
itp. Wymaga to jednak ustawienia tekstu za pomocą kodu.Jeśli jest to zwykły tekst, istnieje wiele sposobów na uniknięcie znaku nowego wiersza (LF) w statycznych zasobach ciągu .
Ujęcie ciągu w podwójne cudzysłowy
Najczystszym sposobem jest umieszczenie ciągu w podwójnych cudzysłowach.
Dzięki temu białe znaki będą interpretowane dokładnie tak, jak się pojawiają, a nie zwinięte.
Następnie możesz po prostu normalnie użyć nowej linii w tej metodzie (nie używaj wcięć).
Zauważ, że niektóre znaki wymagają specjalnych znaków ucieczki w tym trybie (na przykład
\"
).Poniższe sekwencje specjalne działają również w trybie cytowanym.
Podczas używania jednowierszowego XML do reprezentowania ciągów wieloliniowych
Najbardziej eleganckim sposobem na uniknięcie znaku nowej linii w XML jest użycie jego punktu kodowego (10 lub 0xA w zapisie szesnastkowym) przy użyciu jednostki XML / HTML


lub
. To jest sposób na ucieczkę dowolnego znaku w XML .Jednak wydaje się, że działa to tylko w trybie cytowanym.
Inną metodą jest po prostu użycie
\n
, choć moim zdaniem negatywnie wpływa na czytelność (ponieważ nie jest to specjalna sekwencja ucieczki w XML, Android Studio jej nie wyróżnia).Nie umieszczaj nowej linii ani spacji po żadnej z tych sekwencji ucieczki, ponieważ zostanie to zinterpretowane jako dodatkowa spacja.
źródło