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.

  • Beneficios de usar Native en Android
  • No se pudo encontrar la propiedad 'allJava' en el conjunto de fuentes principal
  • Conversión UTF-8 en Android?
  • Sincronizar la hora del sistema en 2 teléfonos
  • HttpGet maneja las cookies de forma automática?
  • Ofuscación: ocultar valores codificados en java
  • Edittext se centran en el inicio y evitan el empuje del diseño
  • N-Puzzle pseudo-aleatorio barajar?
  • Java.lang.RuntimeException: Realizar detener la actividad que no se reanuda en android
  • ¿Cómo puedo contar el número de archivos con una extensión específica en Android?
  • Revise la fecha con la fecha de hoy
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.