ScrollView中不可滚动的ListView,具有不同大小的项目。实际上我尝试得到没有列表项目,并给出高度=没有项目*第一项的高度,但问题是我有列表中不同高度的项目,所以最后一项有时不可见。 这是我的自定义列表视图:
public class ExpandedListView extends ListView {
private android.view.ViewGroup.LayoutParams params;
private int old_count = 0;
int limit=0;
public ExpandedListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
if (getCount() != old_count) {
old_count = getCount();
params = getLayoutParams();
int height=0;
int h =getCount() * (old_count > 0 ? getChildAt(0).getHeight() : 0);
int minHeight=setListViewHeightBasedOnChildren(this);
if (h>minHeight) {
params.height=h+8 * (getCount() - 1)+25;
setLayoutParams(params);
}
super.onDraw(canvas);
}
}
public static int setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return 0;
}
int totalHeight = 0;
for (int i = 0, len = listAdapter.getCount(); i < len; 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))+100;
listView.setLayoutParams(params);
return params.height;
}
}
答案 0 :(得分:0)
我完全不明白你的问题。
如果你想使listview scrolable与每个listview项目的高度和宽度相同,那么使用inflater.make单行并使用inflater在数组中使用它。
如果您的问题是这样,那么我会向您展示listview的代码,其中包含每个listview项目的相同高度和宽度。