Gridview mostrar de acuerdo a la altura real dentro de vista de desplazamiento

<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/titleBarBG" android:layout_alignParentLeft="true" > <RelativeLayout android:id="@+id/scrollContent" android:layout_width="fill_parent" android:layout_height="wrap_content" > <GridView android:id="@+id/issueList" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/archiveTitle" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:background="@drawable/customshape" android:numColumns="3" android:overScrollMode="never" android:scrollbars="none" > </GridView> </RelativeLayout> </ScrollView> 

Me gustaría crear una gridview que actúe como una tabla. Por ejemplo, el tamaño de la cuadrícula aumentará lo que hará que el gridview sea más alto. En lugar de ocultar el contenido extra, me gustaría que la vista de cuadrícula mostrar todo el contenido y ampliar la altura cuando hay contenido adicional

¿Cómo implementar esto? Gracias

 public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context context) { super(context); } public MyGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } } 

Esta es una versión ligeramente limpia de: Cuadrícula de imágenes dentro de ScrollView

WrappedGridView.java:

 /** * Use this class when you want a gridview that doesn't scroll and automatically * wraps to the height of its contents */ public class WrappedGridView extends GridView { public WrappedGridView(Context context) { super(context); } public WrappedGridView(Context context, AttributeSet attrs) { super(context, attrs); } public WrappedGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Calculate entire height by providing a very large height hint. // View.MEASURED_SIZE_MASK represents the largest height possible. int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } } 

Incluir en un diseño XML como si fuera un GridLayout. Utilice un adaptador para proporcionar vistas.

Por lo que puedo decir, esta es la solución más simple disponible ahora. No hay ninguna otra vista disponible en el marco que maneja envoltura. Sería bueno si alguien fuera a proporcionar una vista de tabla elegante, de tamaño automáticamente. Modificar GridView.java para este propósito puede no ser una mala idea.

Alternativamente, puede encontrar uno de los proyectos 'FlowLayout' aceptable. Hay android-flowlayout y FlowLayout . Estos son un poco más flexibles que una cuadrícula simple y, supongo, un poco menos eficientes. Usted también no debe necesitar proporcionarles un adaptador.

  • Configuración de JAVA_HOME en SDK de Android
  • Intermitentes marcos lentos en Android OpenGL ES 2.0
  • Android Studio no pudo encontrar "libiconv.so"
  • ScheduledExecuterService.scheduleAtFixedRate crea varios grupos de hilos - Android
  • El cuadro de diálogo Progreso muestra pero no muestra la barra de progreso y el mensaje no se actualiza
  • Simple AlarmManager ejemplo para disparar una actividad en 10 minutos
  • Tabulaciones desplazables de Android + estado de desplazamiento al pasar
  • Cómo cambiar las pestañas de forma programática mediante buttonclick en Android
  • El menú de la barra de herramientas no funciona con ViewPager
  • ¿Utilizar JSONArray en otra clase?
  • ¿Cuáles son las maneras de generar programáticamente conjuntos de colores de Material Design?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.