¿Cómo aumentar la altura de ScrollView en Android?
Hola amigos,
- Cómo mostrar siempre la barra de desplazamiento
- Pellizcar zoom con ScrollView: Actualizar su comportamiento de desplazamiento cuando cambia el tamaño de un niño
- ¿Es posible ajustar el adaptador al diseño lineal?
- Cómo agregar el botón de acción flotante en la parte superior de scrollview
- Adición dinámica de vistas a RelativeLayout dentro de ScrollView
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>
- ¿Cómo mostrar una imagen que es más grande que las dimensiones de la pantalla del teléfono?
- ScrollView no se desplaza a la parte inferior
- ¿Por qué mi ScrollView es demasiado ancha sólo cuando no necesita desplazarse?
- Vista demasiado grande para encajar en la caché de dibujo en Webview dentro de scrollview
- Android captura todos los eventos de movimiento y los envía a los niños
- Cómo agregar scrollview a keyboardView en android
- ¿Es posible soportar una función setScrollY () (ScrollView API 14) como función para los antiguos niveles de API?
- ScrollView oculta el diseño lineal inferior
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.
- Obtener posición en ListView
- Android – Cómo crear Intención para abrir la actividad que muestra la pantalla "Configuración de cuentas y sincronización"