01 |
public void setListViewHeightBasedOnChildren(ListView listView) { |
02 |
ListAdapter listAdapter = listView.getAdapter(); |
03 |
if (listAdapter == null ) { |
04 |
return ; |
05 |
} |
06 |
07 |
int totalHeight = 0 ; |
08 |
for ( int i = 0 ; i < listAdapter.getCount(); i++) { |
09 |
View listItem = listAdapter.getView(i, null , listView); |
10 |
listItem.measure( 0 , 0 ); |
11 |
totalHeight += listItem.getMeasuredHeight(); |
12 |
} |
13 |
14 |
ViewGroup.LayoutParams params = listView.getLayoutParams(); |
15 |
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1 )); |
16 |
((MarginLayoutParams)params).setMargins( 10 , 10 , 10 , 10 ); |
17 |
listView.setLayoutParams(params); |
18 |
} |
[2].[代码] XML布局 跳至 [1] [2] [3] [4]
01 |
<ScrollView |
02 |
android:layout_width= "fill_parent" |
03 |
android:layout_height= "fill_parent" |
04 |
android:fadingEdge = "none" |
05 |
android:background= "#FFF4F4F4" |
06 |
xmlns:android= "http://schemas.android.com/apk/res/android" |
07 |
> |
08 |
<LinearLayout |
09 |
android:gravity= "center_horizontal" |
10 |
android:orientation= "vertical" |
11 |
android:background= "#fff4f4f4" |
12 |
android:layout_width= "fill_parent" |
13 |
android:layout_height= "fill_parent" |
14 |
> |
15 |
<ListView |
16 |
android:id= "@+id/moreItemsListView" |
17 |
android:layout_width= "fill_parent" |
18 |
android:layout_height= "fill_parent" |
19 |
android:cacheColorHint= "#FFF4F4F4" |
20 |
android:dividerHeight= "0.0dip" |
21 |
android:fadingEdge= "none" |
22 |
/> |
23 |
</LinearLayout> |
24 |
</ScrollView> |