ListView的 Header嵌套GridView有关问题

高的世界
博客专家认证
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);
}
}
...全文
90 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
使用如下方法动态计算试试:
/**
	 * 动态计算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);
	}

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧