Creo que una solución más elegante sería el uso de la ScrollView
's android:fillViewport
propiedad. A ScrollView
es un poco diferente en la forma en que trata su vista de contenido (solo puede tener una), incluso si establece match_parent
( fill_parent
) en ScrollView
, no le dará tanto espacio a su vista de contenido, sino que el comportamiento predeterminado es ScrollView
que el contenido independientemente de lo que especifique para esa vista. Lo que android:fillViewport
hace es decirle ScrollView
que estire su contenido para llenar la ventana gráfica ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Entonces, en este caso, LinearLayout
se estirará para que coincida con la ventana y si la altura va detrás de la ventana, entonces se podrá desplazar, ¡que es exactamente lo que desea!
La respuesta aceptada no funcionará correctamente cuando el contenido se extienda más allá de ScrollView
porque todavía centrará la vista de contenido primero, lo que hará que corte una parte de la vista, y el ScrollView
centrado en otro diseño funciona pero simplemente no se siente bien, además Creo que también resultará en un error de pelusa (padre inútil o algo por el estilo).
Intente algo como esto:
<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>
Sólo recuerde que la razón por la que se centra aquí ahora es debido a la android:gravity
sobre el LinearLayout
puesto que la ScrollView
va a estirar el LinearLayout
fin de mantener esto en mente, dependiendo de lo que se agrega a la disposición.
Otra buena lectura sobre ScrollView
aunque no sobre centrado sino sobre fillViewport
es http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/