¿Cómo aumentar la altura de ScrollView en Android?

texto alternativo

Hola amigos,

Estoy utilizando GridView dentro de un ScrollView para mostrar imágenes. En el GridView tengo 16 imágenes que se agregaron dinámicamente, pero el ScrollView no muestra todas las 16 imágenes (ver captura de pantalla).

Quiero que el ScrollView para mostrar todo el GridView , ¿alguien sabe cómo puedo solucionar esto?

Gracias a todos.

Archivo xml:

 <?xml version="1.0" encoding="utf-8"?> <merge android:layout_width="wrap_content" android:layout_height="340dip" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="320dip" android:orientation="vertical" android:background="@color/black"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollview" android:layout_width="fill_parent" android:layout_height="500dip" android:background="#ffffff" android:paddingTop="10dip" android:paddingLeft="5dip" android:layout_weight="1"> <GridView android:id="@+id/jr_lookbook_grid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="4" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:adjustViewBounds="true" android:background="@drawable/shape" android:gravity="center" android:layout_weight="1"/> </ScrollView> <Button android:id="@+id/click" android:background="@android:color/transparent" android:text="Load More Pictures..." android:textColor="@color/white" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout02_img" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center" android:layout_alignParentBottom="true" android:background="@color/black" android:layout_alignParentLeft="true"> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" /> <ImageView android:id="@+id/ImageView01" android:layout_gravity="center_horizontal" android:scaleType="centerInside" android:layout_width="wrap_content" android:layout_height="fill_parent" android:adjustViewBounds="true"> </ImageView> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout02" android:background="#AA000000" android:layout_width="400px" android:layout_height="50dip" android:layout_gravity="bottom" > <Button android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/back1" android:layout_alignParentRight="true" android:layout_marginLeft="10dip" /> <Button android:background="@drawable/forward5" android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_alignParentRight="true" android:layout_marginLeft="215dip" /> </LinearLayout> </merge> 

Utilice el atributo android:fillViewport="true" en el diseño XML o use el método setFillViewport(true) en código Java.

Echa un vistazo a: Documentación ScrollView

Tuve un problema similar en el que tenía un scrollview debajo de una barra de navegación fija en un AbsoluteLayout.

Puse la altura del scrollview a la altura de mi pantalla menos la altura del navbar. Mi pantalla tenía una altura de 480dp y la barra de navegación tenía 47dp de alto, así que establecí la altura de scrollview en 433dp en el diseño xml y moví la parte superior de la vista de desplazamiento hacia abajo debajo de la barra de navegación usando un desplazamiento en Y.

 <ScrollView android:id="@+id/scroll_view" android:layout_width="fill_parent" android:layout_height="433dp" android:layout_x="0dp" android:layout_y="50dp" android:fillViewport="true" > 

Agregue las siguientes importaciones:

 import android.content.Context; import android.view.WindowManager; import android.widget.ScrollView; import android.view.Display; 

Ahora para hacer que funcione para múltiples pantallas lo agregué a onCreate para la actividad:

  ScrollView myScrollView = (ScrollView) findViewById(R.id.scroll_view); myScrollView.getLayoutParams().height = ((int) ScHgt(this)-47); 

Con la ayuda de esta función de ayuda para obtener la altura de la pantalla:

 //---------------------------------------------------------------------------------------------- // public static double ScHgt(Context context) //---------------------------------------------------------------------------------------------- //return the screen height of the device public static double ScHgt(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); return display.getHeight(); } 

No debe agregar GridView en ScrollView. Consulte la API de GridView para comprender GridView.

Según la definición GridView muestra los elementos en la cuadrícula desplazable bidimensional. Por lo tanto, si agrega un componente desplazable dentro de ScrollView el comportamiento no sería como se esperaba. Como no podemos agregar ListView dentro de ScrollView no podemos y no debemos añadir GridView dentro de ScrollView.

Si la parte inferior del diseño y la parte superior del peso del diseño es 0, configure las vistas de desplazamiento en 1 y luego use layout_height = "match_parent"

Según mí, no hay necesidad de añadir la vista de desplazamiento para la vista de cuadrícula. En Android, agregará la vista de desplazamiento automáticamente, si hay alguna necesidad.

  • ¿Cómo implementar desplazamiento horizontal para la barra de herramientas en android?
  • Android ScrollView layout (wrap_content, tamaño máximo)
  • Cómo poblar webview en android con texto sin formato de base de datos y ser capaz de manejar caracteres de nueva línea
  • Scrolling jerky antes de frenar cuando edittext solo dentro de scrollview
  • Ver contenido a continuación ExpandableListView
  • Cuadrícula de imágenes dentro de ScrollView
  • ScrollView> LinearLayout> PreferenceFragment es altura cero
  • Android - ScrollView como foursquare con mapas + lista
  • ScrollView distrubing ListView dentro de LinearLayout
  • La vista de desplazamiento de Android dentro de otra vista de desplazamiento no se desplaza
  • Uso de RelativeLayout dentro de ScrollView no se produce en desplazamiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.