美文网首页
项目:共享男友遇到的问题

项目:共享男友遇到的问题

作者: 嘿张开心 | 来源:发表于2017-10-19 18:57 被阅读10次

一、在ScrollView中嵌套GridView的两种解决方案:
1.自定GridView让它的高最大。
2.获得GridView的Item的数量,然后算出每个Item的高。GridView的高等于:每个Item的高Item的数量+每个Item上下间距行数-1
//坑 坑 坑
GridView的Item的布局的跟布局必须是wrap_content
GridView的Item的布局的跟布局必须是wrap_content
GridView的Item的布局的跟布局必须是wrap_content

 public void setGridViewHeightBasedOnChildren(GridView gridView, int columns) {
        ListAdapter listAdapter = gridView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }
        int totalHeight = 0;
        //获取Item的数量
        int items = listAdapter.getCount();
        //获取GridView的第一个item
        View listItem = listAdapter.getView(0, null, gridView);
        //测量子Item
        listItem.measure(0, 0);
        //获取子Item的高度
        totalHeight = listItem.getMeasuredHeight();
        //如果item的数量的==1||==0的时候,columns应该==1
        int rows;
        //计算行数
        if (items > columns) {
            rows = items % columns == 0 ? items / columns : items / columns + 1;
        } else {
            rows = 1;
        }
        totalHeight *= rows;
        //计算所有行间距
        int totalVerticalSpacingHeight = gridView.getVerticalSpacing() * (rows - 1);
        ViewGroup.LayoutParams params = gridView.getLayoutParams();
        params.height = totalHeight+totalVerticalSpacingHeight;
        gridView.setLayoutParams(params);
}

二、动态设置GridView Item的宽高,第一项Item的不起作用

private void setItemWH(View convertView) {
        //动态设置Item的宽高
        //获取列数
        int columns = gridView.getNumColumns();
        //获取每个Item之间的横向间距的和
        int totalHorSpacing = gridView.getHorizontalSpacing() * (columns - 1);
        //获取GridView的宽度
        int parentWidth = gridView.getWidth();
        //计算每个Item的宽度
        int itemWidth = (parentWidth - totalHorSpacing) / columns;
        ViewGroup.LayoutParams params = convertView.getLayoutParams();
        params.width = itemWidth;
        params.height = itemWidth;
        convertView.setLayoutParams(params);
    }

解决:都需要设置

if (view == null) {  
       setItemWH(convertView);
    } else {  
        holder = (Holder) view.getTag();  
     setItemWH(convertView);
    }

相关文章

  • 项目:共享男友遇到的问题

    一、在ScrollView中嵌套GridView的两种解决方案:1.自定GridView让它的高最大。2.获得Gr...

  • 共享元素动画在Android10上异常的解决方案(全文唯一仅此一

    问题描述 最近在项目中遇到一个关于共享元素动画失效的问题,在Activity跳转时使用ActivityOption...

  • 项目遇到的问题

    关于stack around the variable “” was corrupted问题

  • 项目遇到的问题

    一、包体大小不一致问题? iOS正确查看ipa包大小方式:以查看App Store的正式包为例: 一、打开http...

  • 共享男友

    2031年七夕,共享男友APP终于正式上线,与多年前的那次恶搞不同,这次共享世界计划之一的共享男友,经过五年的筹备...

  • 共享男友

    手机突然收到一条颇为有趣的短信 ,中英文交织的内容,我随手点开来,它就跟诈骗短信似的关不掉了, 手机明明都坏...

  • 搜索项目遇到的问题

    一、ajax发送多次请求的问题 点击一次按钮,通过控制台发现会发送多次请求,当你多点几次,就会呈指数增长,直接卡死...

  • 项目中遇到的问题

    mySql常用类型: int:整型 默认长度11 10位长度 double:浮点型,例如double(5,2)表...

  • js 项目遇到的问题

    1. 动态添加H5标签, 使用jQuery给动态添加的标签绑定click事件不响应 解决方案参考链接:jquery...

  • 项目中遇到的问题

网友评论

      本文标题:项目:共享男友遇到的问题

      本文链接:https://www.haomeiwen.com/subject/podpuxtx.html