apakah mungkin untuk menambahkan
TextView? Adakah yang mencapai fungsi serupa?
Saya ingin memiliki ruang yang tidak dapat dipecahkan di TextView.
TextView
menghormati karakter spasi tanpa jeda Unicode ( \u00A0
), yang akan menjadi solusi yang lebih sederhana / lebih ringan daripada HTML.
\u00A0
adalah ruang yang tidak terputus,\u0020
bukan ruang yang tidak terputussumber
Dimungkinkan untuk menggunakan
solusi yang dapat dibaca. Menyertakan\u00A0
atau 
atau 
/ 
dalam teks tidak benar-benar menyampaikan banyak informasi kepada pembaca kode sumber (atau penerjemah dalam hal ini), kecuali Anda mengingat kode hex. Berikut cara untuk menggunakan entitas bernama distrings.xml
:Ini akan membuat deklarasi yang hilang. Deklarasi HTML asli dapat ditemukan di https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent dirujuk dari XHTML DTD biasa . Semua ini berfungsi, karena pengurai XML membaca ini dan menggantikannya saat memuat file, sehingga entitas tidak akan ada dalam sumber daya terkompilasi yang dihasilkan.
di Android Text (CharSequence
) ResourcesPerangkat dan pratinjau (pratinjau tidak mengenali HTML)
di Sumber Daya Android String (diformat)Kemudian di kode:
Perangkat dan pratinjau (pratinjau tidak mengenali entitas dan string Java adalah teks literal!)
Trik lebih lanjut
Ini hanyalah contoh penggunaan entitas DTD, gunakan berdasarkan preferensi Anda sendiri.
Keduanya membantu menyoroti:
sumber
’
karakter dengan baik, tidak perlu membuat entitas apostrof.<string name="original">Don’t wrap %1$s</string>
bekerja seperti yang diharapkan.'
VS’
. Android tidak memiliki masalah dengan karakter Unicode yang lebih mewah, tetapi memiliki masalah dengan ASCII 0x27, yang perlu keluar. Entitas itu hanya kenyamanan, saya hanya menaruhnya di sana untuk menunjukkan di mana itu bisa berguna.
string jauh lebih berarti bagi penerjemah daripada unicode\u00A0
con
danparam1
di file yang sama.TextView harus menghormati ruang non breaking
atau
sumber
Satu situasi unik yang saya hadapi adalah menambahkan ruang non-breaking ke sumber daya string yang mengambil
String.format
parameter.Saya mencoba untuk hanya menyalin dan melewati karakter spasi non-breaking ke dalam string dan diganti dengan spasi lama biasa setelah kompilasi.
Menghapus formatted = "false" , menomori format args dan menggunakan notasi garis miring terbalik berhasil untuk saya:
sumber
Ini berhasil untuk saya:
sumber
Ini adalah contoh yang menggunakan nbsp dalam TextView
<string name="text">Example:\u00A0</string>
sumber