Saya punya TextView
yang ingin saya batasi karakternya. Sebenarnya, saya bisa melakukan ini tetapi hal yang saya cari adalah bagaimana menambahkan tiga titik (...) di akhir string. Ini menunjukkan teks telah berlanjut. Ini adalah XML saya tetapi tidak ada titik meskipun membatasi teks saya.
<TextView
android:id = "@+id/tvFixture"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_toLeftOf = "@id/ivFixture_Guest"
android:text = "@string/test_06"
android:lines = "1"
android:ems = "3"
android:gravity = "right"
style = "@style/simpletopic.black"
android:ellipsize="end"/>
singleLine
? Lihat juga: Apakah atribut xml singleLine sudah tidak digunakan lagi di Android?Berikut ini adalah apa yang saya pelajari dengan bermain-main dengan berbagai opsi untuk memaksa
TextView
satu baris (dengan dan tanpa tiga titik).android: maxLines = "1"
Ini hanya memaksa teks ke satu baris. Teks tambahan disembunyikan.
Terkait:
ellipsize = "end"
Ini memotong teks yang tidak sesuai tetapi membuat pengguna tahu bahwa teks telah terpotong dengan menambahkan ellipsis (tiga titik).
Terkait:
ellipsize = "marquee"
Ini membuat teks menggulir secara otomatis melintasi TextView. Perhatikan bahwa kadang - kadang perlu diatur dalam kode:
Seharusnya
android:maxLines="1"
danandroid:singleLine="true"
pada dasarnya harus melakukan hal yang sama dan karena singleLine tampaknya sudah usang saya lebih suka untuk tidak menggunakannya, tetapi ketika saya mengeluarkannya, tenda tidak gulir lagi. MengambilmaxLines
tidak mempengaruhi itu.Terkait:
Lihat HorizontalScrollView dengan scrollHorizontally
Ini memungkinkan pengguna untuk menggulir secara manual untuk melihat seluruh baris teks.
sumber
Coba properti TextView ini di file tata letak Anda ..
sumber
Saya menganggap Anda ingin membatasi lebar untuk satu baris dan tidak membatasi berdasarkan karakter? Karena
singleLine
sudah usang, Anda dapat mencoba menggunakan yang berikut ini bersama-sama:sumber
misalnya. kamu bisa memakai
ini akan membatasi panjang texview hingga 13 tetapi masalahnya adalah jika Anda mencoba menambahkan 3 titik (...), itu tidak akan menampilkannya, karena itu akan menjadi bagian dari panjang textview.
terlepas dari ini, Anda harus menggunakan
sumber
Menggunakan
android:singleLine="true"
android:maxLines="1"
app:layout_constrainedWidth="true"
Begini
TextView
penampilan lengkap saya :sumber
Saya menggunakan Horizonal Recyclerview.
1) Di sini, di CardView, TextView terdistorsi secara vertikal saat menggunakan
Periksa Grup Wyman TextViews yang berani, Jaskolski ...
2) Tapi ketika saya menggunakan singleLine dan ellipsize -
Periksa Grup Wyman TextViews yang berani, Jaskolski ...
Solusi 2 bekerja untuk saya dengan benar (menggunakan singleLine). Saya juga telah menguji dalam versi OS: 4.1 dan di atas (hingga 8.0), itu berfungsi dengan baik tanpa crash.
sumber
kode:
xml:
misalnya
Dalam Matius 13, para murid bertanya kepada Yesus mengapa Ia berbicara kepada orang banyak dalam perumpamaan. Dia menjawab, "Telah diberikan kepadamu untuk mengetahui misteri kerajaan surga, tetapi bagi mereka itu belum diberikan.
Keluaran: Dalam Matius 13, para murid bertanya kepada Yesus mengapa Ia berbicara kepada orang banyak dalam perumpamaan. Dia menjawab, "Sudah diberikan kepada Anda untuk tahu ...
sumber
Saya mendapatkan hasil yang diinginkan dengan menggunakan
Triknya adalah mengatur maxLines dan minLines ke nilai yang sama ... dan Bukan hanya android: lines = "2", jangan lakukan triknya. Anda juga menghindari atribut yang sudah usang.
sumber
Anda perlu menambahkan baris berikut ke tata letak Anda untuk tampilan teks
Semoga ini berhasil untuk Anda.
sumber
Anda dapat membatasi jumlah karakter tampilan teks Anda dan menambahkan (...) setelah teks. Misalkan Anda perlu menunjukkan 5 huruf saja dan setelah itu Anda perlu menunjukkan (...), Lakukan saja yang berikut ini:
sedikit hack ^ _ ^. Padahal itu bukan solusi yang baik. Tetapi sebuah pekerjaan yang berhasil bagi saya: D
EDIT: Saya telah menambahkan cek untuk karakter kurang sesuai no terbatas Anda. karakter.
sumber
Dalam rangka untuk bekerja dengan android: ellipsize atribut, Anda harus membatasi lebar tata letak dari TextView , sehingga teks di luar batas dari pandangan dari TextView.
Jadi, atribut android: layout_width memainkan peran kunci di sini, atur sesuai.
Salah satu contohnya adalah:
Sekarang, di sini jika teks di android: text = "Ini adalah teks yang sangat panjang untuk ditampilkan" tidak terlihat dari TextView dengan android: layout_width = "120dp" , android: ellipsize = "end" akan memotong teks dan tempat ... (3 titik) setelah itu. yaitu ini sangat panjang ... akan ditampilkan di TextView.
sumber
Saya pikir Anda memberi tinggi dan lebar tampilan teks fix. Maka solusi Anda akan berhasil.
sumber
Anda dapat menulis baris ini dalam xml tempat Anda mengambil
textview
:sumber
Pendekatan @AzharShaikh berfungsi dengan baik.
Tapi saya menyadari ada masalah bahwa TextView akan dipotong oleh kata (secara default). Tampilkan jika kami memiliki teks seperti:
uji long_line_without_any_space_abcdefgh
TextView akan menampilkan:
uji...
Dan saya menemukan solusi untuk mengatasi masalah ini, ganti spasi dengan karakter unicode no-break space, itu membuat TextView membungkus karakter alih-alih kata-kata:
Hasil:
uji long_line_without_any_space_abc ...
sumber
sumber
Tambahkan dua baris ini dalam teks Anda
sumber
Anda dapat melakukannya dengan
xml
:sumber
Dots
@ end denganmaxLength="35"
solusi apa pun?Anda baru saja mengubah ...
Gunakan baris di bawah ini
.......
sumber