Chcę, aby zawartość wewnątrz scrollView była w środku.
<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>
Uwaga: nie ma android:gravity
atrybutu dla scrollvew.
dowolny sol: -
android
scrollview
Padma Kumar
źródło
źródło
android:windowSoftInputMode="stateHidden|adjustResize"
ale nie przewijaj, pomóż miRelativeLayout
jako widoku głównego. To może byćFrameLayout
iandroid:layout_gravity="center_vertical"
dlaScrollView
Co powiesz na to?
źródło
Myślę, że bardziej eleganckim rozwiązaniem byłoby skorzystać z
ScrollView
„sandroid:fillViewport
nieruchomości. AScrollView
jest trochę inny w sposobie, w jaki traktuje swój widok zawartości (może mieć tylko jeden), nawet jeśli ustawiszmatch_parent
(fill_parent
) naScrollView
to, nie da tak dużych odstępów w widoku zawartości, zamiast tego domyślnym zachowaniem jestScrollView
zawijanie treść niezależnie od tego, co określisz dla tego widoku. Mówi,android:fillViewport
że maScrollView
rozciągnąć zawartość, aby wypełnić obszar roboczy ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). W tym przypadkuLinearLayout
zostanie rozciągnięty, aby dopasować się do widocznego obszaru, a jeśli wysokość znajdzie się za rzutnią, będzie można go przewijać, co jest dokładnie tym, czego chcesz!Zaakceptowana odpowiedź nie będzie działać poprawnie, gdy zawartość wykracza poza obszar,
ScrollView
ponieważ nadal będzie wyśrodkowywać widok treści, powodując najpierw odcięcie części widoku, aScrollView
wyśrodkowany w innym układzie działa, ale po prostu nie wydaje się odpowiedni, poza tym Myślę, że spowoduje to również błąd kłaczków (bezużyteczny rodzic lub coś podobnego).Spróbuj czegoś takiego:
Wystarczy pamiętać, że powodem jest skupione są tu teraz ze względu na
android:gravity
naLinearLayout
skoroScrollView
będzie rozciągnąćLinearLayout
więc miej to na uwadze, w zależności od tego, co można dodać do układu.Kolejną dobrą lekturą,
ScrollView
choć nie o centrowaniu, ale o tym,fillViewport
jest http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/źródło
Użyj tego atrybutu w ScrollView
Przykład
źródło
Dla @Patrick_Boss - tym, co powstrzymało wycinanie treści w mojej aplikacji, była zmiana gravity i layout_gravity na center_horizontal dla LinearLayout.
U mnie zadziałało ... ale nie jestem pewien, czy to zadziała.
Modyfikacja odpowiedzi @ Ghost -
źródło
Jedną rzeczą do rozważenia jest to, czego NIE ustawiać . Upewnij się, że kontrolki podrzędne, zwłaszcza
EditText
kontrolki, nie mająRequestFocus
ustawionej właściwości.Może to być jedna z ostatnich zinterpretowanych właściwości w układzie i zastąpi ustawienia grawitacji w jego rodzicach (
layout
lubScrollView
).źródło
używając widoku przewijania wewnątrz ConstraintLayout. To działa dla mnie
Wysokość widoku przewijania powinna wynosić wrap_content
źródło