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 № 1Para 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";