scrollview中嵌套listview,gridview时高度问题
来源:互联网 发布:google算法面试题 编辑:程序博客网 时间:2024/06/01 16:54
网上很多文章都说自订一个list
@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec);}
但是发现这样会有问题,当我的gridview重新notify后,计算的高度会出问题,直接用系统自带的view就好了,我们重新计算view的高度
/** * 适配器最外围布局必须是线性布局 重新计算listview的宽高 * * @param listView */public static void setListViewHeightBasedOnChildren(ListView listView) { if (listView.getChildCount() > 0) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 计算子项View 的宽高 totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度 } LinearLayout.LayoutParams params = (LayoutParams) listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 // params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); }}/** * 适配器最外围布局必须是线性布局 重新计算gridView的宽高 * * @param */public static void setGradeViewHeightBasedOnChildren(GridView gridView, int col) { double hightcount = Math.ceil((double) gridView.getAdapter().getCount() / (double) col); int height = 0;int maxheight = 0;for (int i = 0, len = gridView.getAdapter().getCount(); i <= len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = gridView.getAdapter().getView(i, null, gridView); listItem.measure(0, 0); // 计算子项View 的宽高 height = listItem.getMeasuredHeight(); if(maxheight <= height) maxheight = height;}// 获取gridView的布局参数ViewGroup.LayoutParams params = gridView.getLayoutParams();// 设置高度params.height = (int) (hightcount * maxheight + 30);// 设置margin ((ViewGroup.MarginLayoutParams) params).setMargins(30, 30, 30, 30); // 设置参数 gridView.setLayoutParams(params);}
0 0
- scrollview中嵌套listview,gridview时高度问题
- scrollView嵌套listview时,listview高度问题
- scrollview中嵌套listview和gridview时发生的问题
- ScrollView嵌套ListView高度问题
- ScrollView嵌套ListView,gridview问题
- 解决GridView,ListView嵌套在ScrollView时只显示一行高度的问题
- 解决GridView,ListView嵌套在ScrollView时只显示一行高度的问题
- Android在ScrollView中嵌套ListView,ListView高度设置问题
- ScrollView中嵌套ListView,GridView
- 嵌套ListView,GridView高度问题
- ListView中嵌套GridView关于GridView的高度显示问题
- ScrollView 嵌套listview解决listview高度问题
- ScrollView中嵌套ListView高度无法计算问题
- ScrollView中ListView、GridView高度获取错误问题
- 解决ScrollView中listview、gridview的嵌套问题
- ScrollView中嵌套ListView和GridView冲突问题的解决
- ScrollView中嵌套ListView/GridView导致的问题总结
- Android 解决scrollview中嵌套listview、GridView显示不完全问题
- 制作Linux启动盘并安装Linux系统到实体机
- 1004 放盘子
- redis的基础使用
- 网络带宽和吞吐量throughput的关系
- 【第四章】资源 之 4.2 内置Resource实现 ——跟我学spring3
- scrollview中嵌套listview,gridview时高度问题
- HDU 1796 容斥
- cocos 查看内存占用情况
- leetcode_c++:4sum(016)
- 想做一个Web应用
- jquery拖拽
- JAVA基础-接口(interface)
- 证书pem文件生成
- 【Android】更换头像的实现