Saya ingin konten di dalam scrollView sebagai pusat.
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="12dp"
android:paddingBottom="20dp"
android:scrollbarStyle="outsideOverlay"
android:layout_gravity="center" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check"
android:gravity="center_vertical|center_horizontal"/>
</ScrollView>
Catatan: tidak ada android:gravity
atribut untuk scrollvew.
sol apapun: -
android
scrollview
Padma Kumar
sumber
sumber
android:windowSoftInputMode="stateHidden|adjustResize"
tetapi, jangan gulir, tolong bantu sayaRelativeLayout
sebagai root view. Ini bisaFrameLayout
danandroid:layout_gravity="center_vertical"
untukScrollView
Bagaimana dengan ini?
sumber
Saya pikir solusi yang lebih elegan akan menggunakan
ScrollView
'sandroid:fillViewport
properti. AScrollView
sedikit berbeda dalam cara memperlakukan tampilan kontennya (hanya dapat memiliki satu), bahkan jika Anda menyetelmatch_parent
(fill_parent
) keScrollView
itu tidak akan memberikan banyak jarak ke tampilan kontennya, sebaliknya perilaku default adalah untukScrollView
membungkus konten apa pun yang Anda tentukan untuk tampilan itu. Apa yangandroid:fillViewport
dilakukan adalah memberi tahuScrollView
untuk meregangkan kontennya untuk mengisi viewport ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Jadi dalam kasus ini, AndaLinearLayout
akan diregangkan agar sesuai dengan viewport dan jika ketinggian berada di belakang viewport maka itu akan dapat digulir sesuai dengan yang Anda inginkan!Jawaban yang diterima tidak akan berfungsi dengan baik ketika konten melampaui
ScrollView
karena itu masih akan memusatkan tampilan konten terlebih dahulu menyebabkannya memotong sebagian tampilan, danScrollView
berpusat di tata letak lain berfungsi tetapi terasa tidak benar, selain itu Saya pikir itu juga akan menghasilkan kesalahan lint (orang tua tidak berguna atau sesuatu di sepanjang garis itu).Coba sesuatu seperti ini:
Ingatlah bahwa alasan itu dipusatkan di sini sekarang adalah karena
android:gravity
padaLinearLayout
sejakScrollView
akan meregangkanLinearLayout
jadi ingatlah itu tergantung pada apa yang Anda tambahkan ke tata letak.Baik lagi membaca
ScrollView
meskipun bukan tentang keterpusatan tapi tentangfillViewport
adalah http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/sumber
Gunakan atribut ini di ScrollView
Contoh
sumber
Untuk @Patrick_Boss - yang menghentikan pemotongan konten dalam aplikasi saya adalah mengubah gravitasi dan layout_gravity menjadi center_horizontal untuk LinearLayout.
Ini berhasil untuk saya ... tetapi tidak yakin apakah itu akan berhasil untuk Anda.
Modifikasi jawaban @ Ghost -
sumber
Satu hal yang perlu diperhatikan adalah apa yang TIDAK disetel . Pastikan kontrol anak Anda, terutama
EditText
kontrol, tidak memilikiRequestFocus
set properti.Ini mungkin salah satu properti yang terakhir ditafsirkan pada tata letak dan akan menggantikan pengaturan gravitasi pada induknya (
layout
atauScrollView
).sumber
menggunakan tampilan gulir di dalam ConstraintLayout. Ini berhasil untuk saya
Tinggi tampilan gulir harus wrap_content
sumber