Ich denke , eine elegantere Lösung wäre es , die zu verwenden ScrollView
ist android:fillViewport
Eigentum. A unterscheidet ScrollView
sich ein wenig darin, wie es die Inhaltsansicht behandelt (kann nur eine haben), selbst wenn Sie match_parent
( fill_parent
) auf setzen ScrollView
, gibt es der Inhaltsansicht nicht so viel Abstand, stattdessen ist das Standardverhalten das ScrollView
Umschließen der Inhalt, unabhängig davon, was Sie für diese Ansicht angeben. Sie android:fillViewport
müssen den ScrollView
Inhalt erweitern, um das Ansichtsfenster zu füllen ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). In diesem Fall LinearLayout
würden Sie also gedehnt, um mit dem Ansichtsfenster übereinzustimmen. Wenn die Höhe hinter dem Ansichtsfenster liegt, kann es gescrollt werden, was genau das ist, was Sie wollen!
Die akzeptierte Antwort funktioniert nicht richtig, wenn der Inhalt über das hinausgeht, ScrollView
da die Inhaltsansicht immer noch zuerst zentriert wird, wodurch ein Teil der Ansicht abgeschnitten wird, und dieScrollView
zentriert wird, in einem anderen Layout zentrierte Funktion funktioniert, fühlt sich aber einfach nicht richtig an Ich denke, es wird auch zu einem Flusenfehler führen (nutzloser Elternteil oder etwas in dieser Richtung).
Versuchen Sie so etwas:
<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>
Denken Sie daran , dass der Grund , warum es hier wird jetzt wegen der zentriert ist android:gravity
auf die LinearLayout
seit dem ScrollView
dehnen dieLinearLayout
so halten , dass, je nachdem , was Sie mit dem Layout hinzuzufügen.
Eine weitere gute lesen Sie weiter , ScrollView
obwohl nicht über Zentrierung aber etwa fillViewport
ist http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/