您好,登錄后才能下訂單哦!
今天開發遇到一個問題,就是當動態插入ListView數據的時候,由于之前ListView的高度已經固定死了,所以顯示不完整的數據,并且底部顯示黑邊。如圖:
而我希望這個ListView可以動態的改變高度:
當時第一個想到的解決辦法就是在setAdapter之后去重新修改ListView的高度,但是發現設置match_parent或wrap_content沒有效果,只能設置一個固定的高度。但是顯然我的數據長度是不定的,所以設置固定高度不顯示。
最后采用的辦法是:
[java] view plaincopy
public 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, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
((MarginLayoutParams) params).setMargins(10, 10, 10, 10); // 可刪除
listView.setLayoutParams(params);
}
[html] view plaincopy
<ListView
android:id="@+id/getInfo"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#FFF4F4F4"
android:dividerHeight="0.0dip"
android:fadingEdge="none" // 邊界黑邊
/>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。