Saya memiliki tata letak dasar berikut
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_background">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
<LinearLayout>
Sepertinya xml sudah benar tetapi teksnya diratakan ke kiri. Tampilan teks menempati seluruh lebar induk dan tampilan teks disetel ke tengah. Tidak yakin apa masalahnya ...
android
android-layout
android-linearlayout
layout-gravity
Jake Wilson
sumber
sumber
Jawaban:
Apa yang terjadi adalah karena TextView mengisi seluruh lebar LinearLayout bagian dalam, TextView sudah berada di tengah horizontal layout . Saat Anda menggunakannya
android:layout_gravity
, tempatkan widget, secara keseluruhan, dalam gravitasi yang ditentukan. Alih-alih menempatkan seluruh pusat widget, yang sebenarnya Anda coba lakukan adalah menempatkan konten di tengah yang dapat diselesaikan denganandroid:gravity="center_horizontal"
danandroid:layout_gravity
atributnya dapat dihapus.sumber
android:layout_width
akan memiliki nilai yang sama (setelah layout). Karena lebar TextView sama dengan dengan dari LinearLayout dalam TextView secara efektif memilikiandroid:layout_gravity
nilai-nilaileft
,right
dancenter
pada saat yang sama.ImageView
yanglayout_gravity
dan untukTextView
yanggravity
yaitu apa saja bekerja. Android itu hebat! Terima kasih untuk semua posting SO yang indah yang tanpanya pengembangan tidak mungkin dilakukan.android:layout_width="match_parent"
sumber
Jika Anda mengatur
<TextView>
di tengah<Linearlayout>
maka pertama masukkanandroid:layout_width="fill_parent"
wajibTidak perlu menggunakan gravitasi lainnya
sumber
Gunakan
android:gravity="center"
dalamTextView
sebagai gantilayout_gravity
.sumber
Cukup gunakan: android: layout_centerHorizontal = "true"
Ini akan menempatkan seluruh textview di tengah
sumber