Comment obtenir la hauteur de listview dans android?
J'ai besoin de trouver la hauteur de android ListView avec personnalisé ListVAdapter. Chacun des éléments ListView peut être de hauteur variable. J'ai essayé le code suivant que j'ai trouvé ici:
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}
Mais il n'en donne pas la hauteur réelle; il donne même hauteur pour tous les éléments de la liste. Est-il possible de trouver ListView hauteur avec les éléments de la liste de hauteur variable?
source d'informationauteur althaf_tvm
Vous devez vous connecter pour publier un commentaire.
essayer ce code.
Lorsque vous appelez
measure(0, MeasureSpec.UNSPECIFIED)
vous dites à la disposition de l'affichage du système à utiliser une infinité de largeur, de sorte que par exempleTextViews
peut couler en une seule ligne. Essayer de passer à la largeur de votre liste:Vous devez également être sûr que vous appelez cet après
onMeasure
a été appelé sur l'affichage de la liste, oulistView.getMeasuredWidth()
sera de retour 0.Vous pouvez utiliser getHeight():
Ou suivez ce réponse.
@Jeevamuthu code.