Saya mencoba menambahkan jeda baris di TextView.
Saya mencoba menyarankan \ n tetapi itu tidak berhasil. Inilah cara saya mengatur teks saya.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
Ini string saya: <string name="sample_string">some test line 1 \n some test line 2</string>
Seharusnya terlihat seperti ini:
some test line 1
some test line 2
Tapi itu menunjukkan seperti: some test line 1 some test line 2
.
Apakah saya melewatkan sesuatu?
android
textview
line
line-breaks
dropsOfJupiter
sumber
sumber
\n
memang cara terbaik. github.com/paour/StringResourceTestHtml.fromHtml()
fungsi itu dan cukup gunakantxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Jawaban:
\n
bekerja untuk saya, seperti ini:sumber
\n
seorang diri yang akan bekerja ... Jangan berpikir\r
melakukan apa pun.ok tahu itu:
jadi bungkus dalam CDATA diperlukan dan istirahat ditambahkan ke dalam sebagai tag html
sumber
Html.fromHtml()
, yang sedikit banyak untuk linebreak sederhana, dan tidak didukung oleh penyedia terjemahan.Android versi 1.6 tidak mengenali \ r \ n. Sebagai gantinya, gunakan: System.getProperty ("line.separator")
sumber
Linebreak (\ n) hanya berfungsi jika Anda memasukkan nilai sumber daya string Anda dalam kutipan seperti ini:
Itu tidak akan melakukan linebreak jika Anda meletakkannya tanpa tanda kutip seperti ini:
ya itu mudah.
sumber
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
Mencoba semua hal di atas, lakukan beberapa riset sendiri yang menghasilkan solusi berikut untuk merender karakter linefeed escape:
Dengan menggunakan metode ganti, Anda perlu memfilter umpan baris yang lolos (mis. '\\ n')
Hanya dengan demikian setiap instance dari feed baris '\ n' karakter escape akan dirender ke dalam linefeed yang sebenarnya
Untuk contoh ini saya menggunakan database noSQL Google Apps Scripting (ScriptDb) dengan data berformat JSON.
Ceria: D
sumber
Ini berhasil untuk saya
sumber
Ada dua cara untuk mengatasi hal ini. Jika Anda menggunakan string sebagai string mentah, Anda harus menggunakan karakter baris baru. Jika Anda menggunakannya sebagai html, misalnya dengan menguraikannya
Html.fromString
, varian kedua lebih baik.1) Karakter baris baru
\n
2) Tag baris baru html
<br>
atau<br />
sumber
<br>
,<u>
,<b>
Dan<i>
tag yang diperbolehkan dalam sumber string yang tanpa melarikan diri, dan benar diterapkan olehTextView.setText(resId)
. Mereka dilucuti jika menggunakanContext.getString(resId)
, kecuali dibungkusCDATA
bagian.Ini bekerja untuk saya, mungkin seseorang akan menemukan ini bermanfaat:
sumber
Jika Anda menggunakan XML untuk mendeklarasikan penggunaan TextView
android:singleLine = "false"
atau di Java, gunakantxtSubTitle.setSingleLine(false);
sumber
Digunakan Android Studio 0.8.9. Satu-satunya cara bekerja untuk saya adalah menggunakan
\n
. Tidak membungkus dengan CDATA<br>
atau<br />
bekerja.sumber
Saya menggunakan yang berikut ini:
sumber
sangat mudah: gunakan "\ n"
\ n sesuai dengan ASCII char 0xA, yang merupakan 'LF' atau umpan baris
berkorespondensi dengan ASCII char 0xD, yang merupakan 'CR' atau carriage return
ini tanggal kembali dari mesin tik pertama, di mana Anda dapat memilih untuk hanya melakukan umpan baris (dan ketik hanya satu baris lebih rendah), atau umpan baris + carriage return (yang juga bergerak ke awal baris)
di Android / java \ n sesuai dengan carriage return + line feed, karena Anda hanya akan 'menimpa' baris yang sama
sumber
Coba periksa kembali lokasi Anda. Mungkin, Anda mencoba mengedit satu file (pelokalan), tetapi sebenarnya memprogram menggunakan yang lain, seperti dalam kasus saya . Bahasa sistem default adalah bahasa Rusia, sementara saya mencoba mengedit lokalisasi bahasa Inggris.
Dalam kasus saya, solusi yang berfungsi adalah menggunakan "\ n" sebagai pemisah baris:
sumber
Anda juga bisa menambahkan
"<br/>"
bukan \ n.Ini adalah kode HTML untuk <br/>
Dan kemudian Anda dapat menambahkan teks ke TexView:
sumber
Html.fromHtml(textForTextView).toString()
--- Dan kemudian Anda dapat melakukan:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- Dengan kata lain cukup gunakan<br/>
langsung di dalamfromHtml()
<br/>
harus cukup untuk memastikan informasi gaya tidak dilucuti. (berdasarkan dokumentasi resmi)Anda juga dapat menggunakan String-Editor Android Studio, secara otomatis menghasilkan garis rem dan hal-hal seperti itu ...
sumber
Seperti
Html.fromHtml
sudah usang saya hanya saya menggunakan kode ini untuk mendapatkan String2 di baris berikutnya..
sumber
Cara paling mudah untuk melakukannya adalah dengan membuka nilai / string (di folder sumber daya Anda)
Nyatakan string di sana:
Dan dalam file xml spesifik Anda, panggil saja string seperti
sumber
Saya menemukan metode lain: Diperlukan untuk menambahkan atribut " android: maxWidth =" 40dp " ". Tentu saja, itu mungkin tidak bekerja dengan sempurna, tetapi memberikan garis istirahat.
sumber
\ n tidak bekerja untuk saya. Saya bisa memperbaiki masalah dengan mengubah xml ke teks dan membangun properti teks textview seperti di bawah ini.
Semoga ini membantu mereka yang mengatakan bahwa itu tidak berhasil untuk mereka.
sumber
\n
karakter tersembunyi di sana.Saya membaca teks saya dari file, jadi saya mengambil pendekatan yang sedikit berbeda, karena menambahkan \ n ke file mengakibatkan \ n muncul di teks.
sumber
Mungkin Anda dapat menempatkan lf ke dalam teks, tetapi tidak menampilkan? Pastikan Anda memiliki ketinggian yang cukup untuk kontrol. Sebagai contoh:
Benar:
Mungkin salah:
sumber
Dalam kasus saya, saya memecahkan masalah ini dengan menambahkan yang berikut:
sumber
coba ini:
sumber
Saya merasa diperlukan jawaban yang lebih lengkap untuk menggambarkan bagaimana ini bekerja lebih menyeluruh.
Pertama, jika Anda membutuhkan pemformatan tingkat lanjut, periksa manual tentang cara menggunakan HTML dalam sumber daya string .
Maka Anda bisa menggunakannya
<br/>
, dll. Namun, ini membutuhkan pengaturan teks menggunakan kode.Jika hanya teks biasa, ada banyak cara untuk melepaskan karakter baris baru (LF) dalam sumber daya string statis .
Menutup string dalam tanda kutip ganda
Cara terbersih adalah dengan melampirkan string dalam tanda kutip ganda.
Ini akan membuatnya jadi spasi putih ditafsirkan persis seperti yang ditampilkan, bukan runtuh.
Maka Anda cukup menggunakan baris baru secara normal dalam metode ini (jangan gunakan indentasi).
Perhatikan bahwa beberapa karakter memerlukan pelarian khusus dalam mode ini (seperti
\"
).Urutan melarikan diri di bawah ini juga berfungsi dalam mode yang dikutip.
Saat menggunakan satu baris dalam XML untuk mewakili string multi-baris
Cara paling elegan untuk keluar dari baris baru dalam XML adalah dengan titik kode (10 atau 0xA dalam hex) dengan menggunakan entitas XML / HTML


atau
. Ini adalah cara XML untuk keluar dari karakter apa pun .Namun, ini tampaknya hanya berfungsi dalam mode yang dikutip.
Metode lain adalah dengan hanya menggunakan
\n
, meskipun itu secara negatif mempengaruhi keterbacaan, menurut saya (karena itu bukan urutan pelarian khusus dalam XML, Android Studio tidak menyorotnya).Jangan menyertakan baris baru atau spasi putih apa pun setelah urutan pelarian ini, karena itu akan ditafsirkan sebagai ruang ekstra.
sumber
Gunakan pemecah teks seperti ini (\ n):
sumber