Jak dodać podział linii w widoku tekstowym Androida?
Próbuję dodać podział linii w widoku tekstowym.
Próbowałem zasugerować, ale to nic nie da. 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>
Powinno pokazywać się tak:
some test line 1
some test line 2
Ale to pokazuje TAK: some test line 1 some test line 2
.
21 answers
\n
u mnie działa tak:
<TextView android:text="First line\nNext line"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-27 09:44:08
Ok zorientowałem się:
<string name="sample_string"><![CDATA[some test line 1 <br />some test line 2]]></string>
Więc zawijanie w CDATA jest konieczne i przerwy dodawane wewnątrz jako znaczniki html
Dziękuję wszystkim za pomoc!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-21 22:33:12
Android w wersji 1.6 nie rozpoznaje \r \ n. Zamiast tego użyj: System.getProperty ("linia.separator")
String s = "Line 1"
+ System.getProperty ("line.separator")
+ "Line 2"
+ System.getProperty ("line.separator");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-12 18:09:25
Linebreaks (\N) Tylko działa, jeśli umieścisz wartość zasobów w cudzysłowach w następujący sposób:
<string name="sample_string">"some test line 1 \n some test line 2"</string>
Nie zrobi linebreaks jeśli umieścisz go bez cudzysłowów takich jak:
<string name="sample_string">some test line 1 \n some test line 2</string>
Tak, to takie proste.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-07 02:13:44
Wypróbowałem wszystkie powyższe, zrobiłem kilka własnych badań, w wyniku których otrzymałem następujące rozwiązanie do renderowania znaków ucieczki linii:
string = string.replace("\\\n", System.getProperty("line.separator"));
Używając metody replace musisz filtrować escaped linefeeds (np. '\ \ n')
-
Tylko wtedy każda instancja znaków escape Feed '\n ' jest renderowana do rzeczywistego strumienia linii
W tym przykładzie użyłem Google Apps Scripting NoSQL database (ScriptDb) z danymi sformatowanymi w JSON.
Pozdrawiam : DWarning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 01:32:48
To zadziałało dla mnie
android:text="First \n Second"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-06 06:09:11
U mnie zadziałało, może ktoś się tego dowie:
TextView textField = (TextView) findViewById(R.id.textview1);
textField.setText("First line of text" + System.getProperty("line.separator") + "Linija 2");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-27 23:09:09
Są dwa sposoby na obejście tego.
Jeśli używasz łańcucha jako surowego, musisz użyć nowego wiersza
charakter. Jeśli używasz go jako html, np. przez parsowanie go za pomocą Html.fromString
,
drugi wariant jest lepszy.
1) znak nowej linii \n
<string name="sample> This\nis a sample</string>
2) znacznik newline Html <br>
lub <br />
<string name="sample> This<br>is a sample</string>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-25 14:37:52
Używany Android Studio 0.8.9. Dla mnie jedynym sposobem jest użycie \n
.
Ani opakowanie z CDATA, ani <br>
Ani <br />
nie zadziałało.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-24 04:31:46
Jeśli używasz XML do deklarowania TextView użyj android:singleLine = "false"
lub w Javie, użyj txtSubTitle.setSingleLine(false);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-21 19:26:36
Używam:
YOUR_TEXTVIEW.setText("Got some text \n another line");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-24 12:32:25
Bardzo proste: użyj "\N "
String aString1 = "abcd";
String aString2 = "1234";
mSomeTextView.setText(aString1 + "\n" + aString2);
\ N odpowiada znakowi ASCII 0XA, który jest " LF " lub "line feed"
\ R odpowiada znakowi ASCII 0XD, który jest " CR " lub zwrot karetki
To pochodzi z pierwszych maszyn do pisania, gdzie można wybrać tylko podawanie linii (i wpisać tylko linię niższą) lub podawanie linii + powrót karetki (który również przenosi się na początek linii)
Na Androidzie / Javie \n odpowiada karetce return + line feed, tak jak w przeciwnym razie wystarczy 'nadpisać' tę samą linię
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-02 20:27:20
Spróbuj dwukrotnie sprawdzić swoje lokalizacje. Możliwe, że próbujesz edytować jeden plik( lokalizacja), ale tak naprawdę programujesz używając innego, , tak jak w moim przypadku. Domyślnym językiem systemu jest rosyjski, a ja próbuję edytować angielską lokalizację.
W moim przypadku rozwiązaniem roboczym jest użycie "\N " jako separatora linii:
<string name="string_one">line one.
\nline two;
\nline three.</string>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 17:01:25
Możesz także dodać "<br/>"
zamiast \N.
To kod HTML dla
A następnie możesz dodać tekst do TexView:
articleTextView.setText(Html.fromHtml(textForTextView));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-19 09:45:40
Możesz również użyć edytora strun w Android Studio, który automatycznie generuje hamulce linii i takie tam...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-15 10:25:16
Jako Html.fromHtml
przestarzały po prostu użyłem tego kodu, aby uzyskać String2 w następnej linii.
textView.setText(fromHtml("String1 <br/> String2"));
.
@SuppressWarnings("deprecation")
public static Spanned fromHtml(String html){
Spanned result;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY);
} else {
result = Html.fromHtml(html);
}
return result;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-29 03:06:38
Znalazłem inną metodę: Konieczne jest dodanie atrybutu"android:maxWidth="40dp" ". Oczywiście może nie działać idealnie, ale daje przerwę w linii.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-27 11:52:21
Najprostszym sposobem na to jest przejście do wartości/ciągów znaków (w folderze zasobów)
Zadeklaruj tam ciąg znaków:
<string name="example_string">Line 1\Line2\Line n</string>
I w twoim konkretnym pliku xml po prostu wywołaj ciąg znaków jak
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/example_string" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-30 20:23:08
\N nie pracował dla mnie. Udało mi się rozwiązać ten problem, zmieniając XML na tekst i budując właściwość tekstową textview, jak poniżej.
android:text="Line 1
Line 2
Line 3
DoubleSpace"
Mam nadzieję, że to pomoże tym, którzy powiedzieli, że nie działa dla nich.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 21:44:39
Czytam mój tekst z pliku, więc przyjęłam nieco inne podejście, ponieważ dodanie \n do pliku skutkowało pojawieniem się \n w tekście.
final TextView textView = (TextView) findViewById(R.id.warm_up_view);
StringBuilder sb = new StringBuilder();
Scanner scanner = new Scanner(getResources().openRawResource(R.raw.warm_up_file));
while (scanner.hasNextLine()) {
sb.append(scanner.nextLine());
sb.append("\n");
}
textView.setText(sb.toString());
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-05 00:38:21
Może jesteś w stanie umieścić lf w tekście, ale nie wyświetla się? Upewnij się, że masz wystarczającą wysokość do kontroli. Na przykład:
Poprawny:
android:layout_height="wrap_content"
Może się mylić:
android:layout_height="10dp"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-05 08:20:42