Myślę, że bardziej eleganckim rozwiązaniem byłoby skorzystać z ScrollView„s android:fillViewportnieruchomości. A ScrollViewjest trochę inny w sposobie, w jaki traktuje swój widok zawartości (może mieć tylko jeden), nawet jeśli ustawisz match_parent( fill_parent) na ScrollViewto, nie da tak dużych odstępów w widoku zawartości, zamiast tego domyślnym zachowaniem jest ScrollViewzawijanie treść niezależnie od tego, co określisz dla tego widoku. Mówi, android:fillViewportże ma ScrollViewrozciągnąć zawartość, aby wypełnić obszar roboczy ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). W tym przypadku LinearLayoutzostanie 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, ScrollViewponieważ nadal będzie wyśrodkowywać widok treści, powodując najpierw odcięcie części widoku, a ScrollViewwyś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:
<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:fillViewport="true">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check" />
</LinearLayout>
</ScrollView>
Wystarczy pamiętać, że powodem jest skupione są tu teraz ze względu na android:gravityna LinearLayoutskoro ScrollViewbędzie rozciągnąć LinearLayoutwięc miej to na uwadze, w zależności od tego, co można dodać do układu.
Kolejną dobrą lekturą, ScrollViewchoć nie o centrowaniu, ale o tym, fillViewportjest http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/