Höhe von ListView ermitteln

4

469110

Gast
Hallo,

ich möchte eine ListView anzeigen. Die ListView soll so hoch sein wie der Inhalt damit der Content unter der ListView mit Scrollen noch zu sehen ist.
Das Problem dabei ist das ich es noch nicht hinbekommen habe eine Höhe zu ermitteln bevor die Items der ListView gerendert wurden.

Ich habe diese Methode hier, aber die liefert mir nicht die richtige Höhe der Items zurück.
Code:
    private boolean setListViewHeightBasedOnItems() {
        ListAdapter listAdapter = getAdapter();
        if (listAdapter != null) {
            int numberOfItems = listAdapter.getCount();
            // Get total height of all items.
            int totalItemsHeight = 0;
            for (int itemPos = 0; itemPos < numberOfItems; itemPos++) {
                View item = listAdapter.getView(itemPos, null, this);
                float px = 500 * (getResources().getDisplayMetrics().density);
                item.measure(View.MeasureSpec.makeMeasureSpec((int) px, View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
                totalItemsHeight += item.getMeasuredHeight();
            }
            // Get total height of all item dividers.
            int totalDividersHeight = getDividerHeight() *
                    (numberOfItems - 1);
            // Get padding
            int totalPadding = getPaddingTop() + getPaddingBottom();
            // Set list height.
            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = totalItemsHeight + totalDividersHeight + totalPadding;
            setLayoutParams(params);
            requestLayout();
            //setDynamicHeight(listView);
            return true;
        } else {
            return false;
        }
    }

Kennt jemand eine Möglichkeit um das zuverlässiger hinzubekommen?

Liebe Grüße
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.119
swa00
swa00
A
Antworten
4
Aufrufe
158
AppDevelopment
A
E
Antworten
0
Aufrufe
740
enrem
E
Zurück
Oben Unten