Coloque un bloque en el centro de un ScrollView

Tengo un ScrollView que contiene un solo niño (elementos envueltos por un LinearLayout). En algún momento la altura de este niño es la mitad de la altura de la ventana, alguna vez es más grande.

Aquí el diseño:

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingBottom="10dp" android:paddingTop="10dp" android:background="@color/some_background"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@drawable/fond_consult" android:orientation="vertical" android:weightSum="2"> ... Some TextViews and ImageViews... </LinearLayout> </ScrollView> 

Cuando el tamaño y la densidad de la pantalla son bajos, el niño se muestra correctamente en ScrollView, pero al representar esta actividad en una pantalla más grande como HDPI y XHDPI, el contenido se coloca en la parte superior de ScrollView.

¿Hay alguna manera de establecer la gravedad para el único hijo del ScrollView, o tengo que eliminar el scrollView si la pantalla del dispositivo es más grande que la altura de medición del niño?

Lo que puedes hacer es intentar agregar android:layout_gravity="center" a ScrollView con su layout_width y layout_height como wrap_content . Como ScrollView se gestiona a la altura y el ancho de sus diseños secundarios.

En el caso normal, ScrollView sólo ocupará el espacio mínimo requerido, por lo que la cuestión de la alineación vertical (en caso de desplazamiento vertical) no surge en absoluto. Puede revisar el artículo en http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/ . Puede ayudarte.

  • Android: especifica la altura y el ancho de ScrollView
  • Android ScrollView layout (wrap_content, tamaño máximo)
  • Barra de desplazamiento a ViewGroup personalizado
  • Android: ¿Cómo puedo añadir un pie de página a una vista de pantalla completa?
  • Cómo fijar dos botones debajo de la barra de herramientas mientras se desplaza
  • Cómo crear multiline edittext con vista de desplazamiento dentro de la actividad?
  • Gridlayout + ScrollView
  • Cómo obtener la última posición de vista de desplazamiento, vista de desplazamiento
  • Android, LinearLayout no se desplaza
  • Android: ¿Detectar cuando ScrollView ha terminado de desplazarse y rebotar de nuevo?
  • Android: cómo hacer scrollview infinito con desplazamiento sin fin
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.