Ich habe ListView verschachtelt. Wie erstelle ich die Höhe von listView so groß, dass jede Zeile sichtbar ist? ListView ist in ScrollView verschachtelt, so dass Scroll nicht für ListView funktioniert, also muss ich dafür sorgen, dass alle Elemente in ListView sichtbar sind, was verschachteltes Ion ScrollView ist (es gibt oben und unten mehr Dinge).
Antworten:
4 für die Antwort № 1So berechnen Sie die Höhe von 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();
}
Übergeben Sie das Listenansichtsobjekt an diese Methode.
setListViewHeightBasedOnChildren(listView)
0 für die Antwort № 2
Sie können diesen Code verwenden. listview enthält dieses Attribut
android:minheight="20dp";