ListView的 Header嵌套GridView有关问题

Allen/Gao Elex Android工程师  2015-09-10 11:29:32
ListView的 Header嵌套GridView,GridView显示比较大的图宽度设为match_panrent,高度设为固定值图片都能正常显示,但是图片大小高度不一样,我想设为wrap_content,这时图片就不能正常显示,已经自定义gridview

public class GridViewForListView extends GridView {
public GridViewForListView(Context context) {
super(context);

}

public GridViewForListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
...全文
21 点赞 收藏 1
写回复
1 条回复
泡在网上的蜘蛛 2015年09月10日
使用如下方法动态计算试试:
/**
	 * 动态计算gridView高度
	 * 
	 * @param gridView
	 * @param colums
	 *            固定的列数
	 */
	public static void setgridViewHeightBasedOnChildren(Context context,
			GridView gridView, int colums,boolean isHight) {
		ListAdapter listAdapter = gridView.getAdapter();
		if (listAdapter == null) {
			return;
		}

		int totalHeight = 0;
		for (int i = 0; i < listAdapter.getCount(); i += colums) {
			View listItem = listAdapter.getView(i, null, gridView);
			listItem.measure(0, 0);
			totalHeight += listItem.getMeasuredHeight();
		}

		ViewGroup.LayoutParams params = gridView.getLayoutParams();
		params.height = totalHeight + (5 * (gridView.getCount() - 1));
		if(isHight){
			params.height = params.height + gridView.getRowHeight();
		}
		gridView.setLayoutParams(params);
	}
回复 点赞
发动态
发帖子
Android
创建于2009-10-09

4.6w+

社区成员

9.0w+

社区内容

移动平台 Android
社区公告
暂无公告