Ich verstehe, dass das Hinzufügen eines ListView in einem ScrollView nicht empfehlenswert ist. Aber ich muss eine ListView verwenden, einfach weil ich einen Adapter und verschiedene andere Methoden verwende.Wie erstellt man in einer Listenansicht alle Elemente ohne Scrollen?
Ich habe diesen Code verwendet, den ich auf StackOverflow gefunden habe und er zeigt mir den Großteil meiner Liste. Im Hochformat sind jedoch einige Elemente von unten und im Querformat gleich abgeschnitten.
Wie kann dies behoben werden? Um dies zu verdeutlichen, habe ich eine ScrollView, die ein LinearLayout mit einigen Elementen und meine ListView in meinem XML enthält. Darüber hinaus, wenn ich zu einer neuen Aktivität gehe, dann zurück, kann ich kurz die Bildlaufleisten für die Listenansicht anzeigen und verschwinden sehen. Wie kann dies auch korrigiert werden?
public static boolean setListViewHeightBasedOnItems(ListView listView) {
ListAdapter listAdapter = listView.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, listView);
item.measure(0, 0);
totalItemsHeight += item.getMeasuredHeight();
}
// Get total height of all item dividers.
int totalDividersHeight = listView.getDividerHeight() *
(numberOfItems - 1);
// Set list height.
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalItemsHeight + totalDividersHeight;
listView.setLayoutParams(params);
listView.requestLayout();
return true;
} else {
return false;
}
}
downvoted, ohne Angabe von Gründen :( – ak1652
Ich denke, es ist am besten, eine Listenansicht mit einem Header zu benutzen? http://stackoverflow.com/questions/7978359/using-listview-how-to-add-a-header-view Scheint gut zu funktionieren. – ak1652