Saya dapat menggunakan android:gravity="bottom|center_horizontal"
dalam xml pada tampilan teks untuk mendapatkan hasil yang diinginkan, tetapi saya harus melakukan ini secara terprogram. Tampilan teks saya ada di dalam a tablerow
jika itu penting dalam relativelayout
.
Saya telah mencoba:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);
Tetapi jika saya mengerti dengan benar, itu akan berlaku untuk tablerow
, bukan tampilan teks?
it.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
or
dan tidakand
?! ??!Ini akan memusatkan teks dalam tampilan teks:
sumber
LayoutParams
tidak didefinisikan di sini dan dapat bervariasi, sehingga tidak akan dikompilasi. Anda harus mengetahui tata letak induk (misalnya,LinearLayout
) dan menulisnya di sini.Kita dapat mengatur gravitasi tata letak pada tampilan seperti di bawah ini-
Ini sama dengan kode xml di bawah ini
sumber
Anda harus menggunakan
textView.setGravity(Gravity.CENTER_HORIZONTAL);
.Ingat itu menggunakan
tidak akan bekerja Ini akan mengatur gravitasi untuk widget dan bukan untuk teksnya.
sumber
Gunakan kode ini
sumber
Ini akan mengatur gravitasi tampilan teks Anda.
sumber
Selesaikan ini dengan melakukan beberapa hal, pertama dapatkan
height
dari sayaTextView
dan selami dengan tekssize
untuk mendapatkan jumlah total garis yang mungkin denganTextView
.Setelah Anda mendapatkan nilai ini, Anda perlu mengatur nilai Anda
TextView
maxLines
untuk ini.Atur
Gravity
untukBottom
setelah jumlah maksimum garis telah terlampaui dan itu akan gulir ke bawah secara otomatis.Agar ini berfungsi dengan benar, Anda harus menggunakan
append()
untukTextView
, Jika AndasetText()
ini tidak akan berfungsi.Manfaat dari metode ini adalah bahwa ini dapat digunakan secara dinamis terlepas
height
dari AndaTextView
dan teksnyasize
. Jika Anda memutuskan untuk melakukan modifikasi pada tata letak Anda, kode ini akan tetap berfungsi.sumber