/ / Wie erstelle ich die Höhe von listView so groß, dass jede Zeile sichtbar ist? - Android, Android-Widget

Wie erstelle ich die Höhe von listView so groß, dass jede Zeile sichtbar ist? - Android, Android-Widget

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 № 1

So 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";