Jawaban Singkat: gunakan android:gravity
atau setGravity()
untuk mengontrol gravitasi semua pandangan anak tentang suatu wadah; gunakan android:layout_gravity
atausetLayoutParams()
untuk mengontrol gravitasi pandangan individu dalam sebuah wadah.
Panjang cerita: untuk mengontrol gravitasi dalam wadah tata letak linier seperti LinearLayout
atauRadioGroup
, ada dua pendekatan:
1) Untuk mengontrol gravitasi SEMUA tampilan anak dari suatu LinearLayout
wadah (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_gravity
atribut XML. Dalam kode, kita perlu mendapatkan LinearLayout.LayoutParams
tampilan 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 LinearLayout
wadah horisontal , gravitasi horizontal dari tampilan anaknya disejajarkan satu demi satu dan tidak dapat diubah. Pengaturan android:layout_gravity
untuk center_horizontal
tidak berpengaruh. Gravitasi vertikal default adalah pusat (atau center_vertical) dan dapat diubah ke atas atau bawah. Sebenarnya nilai default layout_gravity
adalah -1
tetapi 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:gravity
atribut XML dan setGravity()
metode untuk mengontrol tampilan anaknya - teks di dalamnya. Ini Button.setGravity(int)
terkait dengan entri developer.android.com ini .