Benar-benar mencari jawaban untuk ini .
Ingin mengatur lebar TextView berdasarkan angka atau karakter. Jadi jika saya ingin selalu lebar 3 karakter, saya bisa mengaturnya dan itu akan menyesuaikan berdasarkan pengaturan textSize. Tanpa ini, saya harus mengatur lebar ke 50dip atau sesuatu, yang mungkin benar atau tidak tergantung pada ukuran font.
sp
.minEms
mungkin jawaban yang lebih baik.Jawaban:
Menjawab pertanyaan saya sendiri ...
Dan pemenangnya adalah: set the
minEms
attribute (android:minEms
) !!!Jadi " ems " ternyata mengacu pada ukuran karakter terluas, biasanya "M", mengerti? Jadi menyetel minEms ke nilai integer katakanlah 3, pada EditText atau TextView harus memastikan lebarnya minimal 3 karakter. Anda juga dapat mengatur maxEms.
Jadi jawaban Kyle di utas ini, meskipun salah, menyebabkan saya menemukan jawabannya, jadi terima kasih Kyle.
sumber
layout_width
kebutuhan untuk menjadiwrap_content
untuk minEms dan maxEms bekerja sebagaimana dimaksud, karena jawaban ini poin.Kebanyakan font tidak menyetel semua lebar karakter menjadi identik. Kurir mungkin merupakan pengecualian yang paling sering digunakan untuk ini, tetapi secara umum lihat perbedaan antara i dan A, misalnya. Hal ini membuat apa yang Anda minta untuk dilakukan menjadi sedikit masalah.
sumber
Coba gunakan:
android:maxLength="3"
Ini akan membatasi teks Anda ke sejumlah karakter tertentu.
sumber
ems
, bertentangan dengan kepercayaan populer (atau setidaknya dari sebagian besar utas tentang ems di sini), tidak didasarkan dari lebar satu 'M'.Semula seperti itu pada tipografi, namun pada media digital termasuk android maknanya bergeser ke ukuran jenis huruf yang digunakan, atau dengan kata lain tingginya (tidak termasuk padding untuk aksen / diakritik).
Jadi itu berarti ketika Anda menentukan
ems
untuk TextView, itu akan digunakantextSize
sebagai basis dan mengalikannya dengan yangems
ditentukan.Sebagai contoh, jika Anda menyetel TextView 16sp
ems
ke 4, lebarnya akan menjadi 64sp. Anda dapat dengan mudah mengujinya dengan menggunakan dua TextView (denganincludeFontPadding
set ke false) secara berdampingan di dalam ConstraintLayout (untuk memanfaatkannyalayout_constraintDimensionRatio
).sumber