Saya benci untuk menghidupkan kembali utas lama tapi ini adalah masalah yang tidak dijawab dengan benar dan terlebih lagi saya telah mengalami masalah ini sendiri.
Inilah sedikit panjangnya, jika Anda hanya tertarik pada jawabannya, silakan gulir sepenuhnya ke kode:
android: gravity dan android: layout_gravity bekerja secara berbeda. Inilah artikel yang saya baca yang membantu saya.
GIST artikel: gravitasi mempengaruhi tampilan setelah tinggi / lebar ditetapkan. Jadi pusat gravitasi tidak akan memengaruhi tampilan yang dilakukan FILL_PARENT (anggap saja sebagai margin otomatis). layout_gravity center AKAN memengaruhi tampilan yang FILL_PARENT (anggap saja sebagai pad otomatis).
Pada dasarnya, android: layout_gravity TIDAK BISA mengakses program, hanya android: gravitasi. Dalam kasus OP dan kasus saya, jawaban yang diterima tidak menempatkan tombol di tengah secara vertikal.
Untuk meningkatkan jawaban Karthi:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
Tautan ke LinearLayout.LayoutParams
.
android: layout_gravity menunjukkan "Tidak ada metode terkait" yang berarti tidak dapat diakses secara programatik. Sedangkan gravitasi adalah bidang di kelas.