/ / ¿Cómo forzar la altura de listView para que tenga un tamaño tal que todas las filas sean visibles? - Android, Android-Widget

¿Cómo forzar la altura de listView para que sea el tamaño para que cada fila sea visible? - android, android-widget

He anidado listView. ¿Cómo forzar que la altura de listView tenga un tamaño tal que todas las filas estén visibles? ListView está anidado dentro de ScrollView, por lo que scroll no funciona para ListView, por lo que debo hacer que todos los elementos sean visibles dentro de ListView, que está anidado en ScrollView (hay más arriba y más abajo).

Respuestas

4 para la respuesta № 1

Para calcular la altura de listView

public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}

int totalHeight = 0;
int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(),
MeasureSpec.AT_MOST);
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}

ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}

Pase el objeto listview a este método.

 setListViewHeightBasedOnChildren(listView)

0 para la respuesta № 2

puedes usar este code.listview contiene este atributo

android:minheight="20dp";