Jawaban Singkat: gunakan android:gravityatau setGravity()untuk mengontrol gravitasi semua pandangan anak tentang suatu wadah; gunakan android:layout_gravityatausetLayoutParams() untuk mengontrol gravitasi pandangan individu dalam sebuah wadah.
Panjang cerita: untuk mengontrol gravitasi dalam wadah tata letak linier seperti LinearLayoutatauRadioGroup , ada dua pendekatan:
1) Untuk mengontrol gravitasi SEMUA tampilan anak dari suatu LinearLayoutwadah (seperti yang Anda lakukan dalam buku Anda), gunakan android:gravity(bukan android:layout_gravity) dalam tata letak file XML atausetGravity() metode dalam kode.
2) Untuk mengontrol gravitasi tampilan anak dalam wadahnya, gunakan android:layout_gravityatribut XML. Dalam kode, kita perlu mendapatkan LinearLayout.LayoutParamstampilan dan mengatur gravitasinya. Berikut adalah contoh kode yang mengatur tombol ke bawah dalam wadah yang berorientasi horizontal:
import android.widget.LinearLayout.LayoutParams;
import android.view.Gravity;
...
Button button = (Button) findViewById(R.id.MyButtonId);
// need to cast to LinearLayout.LayoutParams to access the gravity field
LayoutParams params = (LayoutParams)button.getLayoutParams();
params.gravity = Gravity.BOTTOM;
button.setLayoutParams(params);
Untuk LinearLayoutwadah horisontal , gravitasi horizontal dari tampilan anaknya disejajarkan satu demi satu dan tidak dapat diubah. Pengaturan android:layout_gravityuntuk center_horizontaltidak berpengaruh. Gravitasi vertikal default adalah pusat (atau center_vertical) dan dapat diubah ke atas atau bawah. Sebenarnya nilai default layout_gravityadalah -1tetapi Android meletakkannya di tengah secara vertikal.
Untuk mengubah posisi horisontal pandangan anak dalam wadah linier horisontal, orang dapat menggunakan layout_weight, margin dan bantalan tampilan anak.
Demikian pula, untuk wadah Grup Tampilan vertikal, gravitasi vertikal tampilan anaknya disejajarkan satu di bawah yang lain dan tidak dapat diubah. Gravitasi horisontal default adalah tengah (atau center_horizontal) dan dapat diubah ke kiri atau kanan.
Sebenarnya, tampilan anak seperti tombol juga memiliki android:gravityatribut XML dan setGravity()metode untuk mengontrol tampilan anaknya - teks di dalamnya. Ini Button.setGravity(int)terkait dengan entri developer.android.com ini .