Eski konuları diriltmekten nefret ediyorum ama bu doğru cevaplanmayan bir problem ve dahası bu problemle kendim karşılaştım.
İşte uzun bit, sadece cevapla ilgileniyorsanız lütfen koda kadar aşağı kaydırın:
android: yerçekimi ve android: layout_gravity farklı çalışır. İşte bana yardımcı olan bir makale.
Makalenin özeti: yerçekimi yükseklik / genişlik atandıktan sonra görünümü etkiler. Dolayısıyla, yerçekimi merkezi FILL_PARENT ile yapılan bir görüşü etkilemeyecektir (bunu otomatik kenar boşluğu olarak düşünün). layout_gravity center FILL_PARENT görünümü otomatik olarak etkiler (otomatik altlık olarak düşünün).
Temel olarak, android: layout_gravity programlı olarak erişilemez, sadece android: gravity. OP ve benim durumumda, kabul edilen cevap düğmeyi dikey olarak ortaya koymaz.
Karthi'nin cevabını geliştirmek için:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
Bağlantı için LinearLayout.LayoutParams
.
android: layout_gravity "İlgili yöntem yok" anlamını gösterir, programlı olarak erişilemez. Oysa yerçekimi sınıftaki bir alandır.