动态设定GridView的高度,固定column,实现高度自适应

动态设定GridView的高度,固定column,根据gridview中的item个数设定高度:

调用以下方法:

 public static void setListViewHeightBasedOnChildren(GridView listView) {
    	// 获取listview的adapter
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            return;
        }
        // 固定列宽,有多少列
        int col = 4;// listView.getNumColumns();
        int totalHeight = 0;
        // i每次加4,相当于listAdapter.getCount()小于等于4时 循环一次,计算一次item的高度,
        // listAdapter.getCount()小于等于8时计算两次高度相加
        for (int i = 0; i < listAdapter.getCount(); i += col) {
        	// 获取listview的每一个item
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            // 获取item的高度和
            totalHeight += listItem.getMeasuredHeight();
        }

        // 获取listview的布局参数
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        // 设置高度
        params.height = totalHeight;
        // 设置margin
        ((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
        // 设置参数
        listView.setLayoutParams(params);
    }

调用此方法后,需要在调用notifyDataSetChanged()方法,实现界面刷新

时间: 2024-10-11 10:31:19

动态设定GridView的高度,固定column,实现高度自适应的相关文章

Android动态设定GridView的高度,固定column,实现高度自适应

动态设定GridView的高度,固定column,根据gridview中的item个数设定高度: 调用以下方法: [java] view plaincopy public static void setListViewHeightBasedOnChildren(GridView listView) { // 获取listview的adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) {

高度固定,行数不固定的文字垂直居中问题

大家都知道,水平方向上的居中很好做到,text-align:center即可做到:垂直方向上的居中如果文字行数和高度都固定也很好实现,但是如果行数不固定呢? 最近,接到一个需求:高度固定,文字行数可能为一行.两行,但不管多少行,文字都要垂直居中.例如: 对于H5页面来说,CSS3的translate即可做到,其原理是外层div相对定位,里面的元素绝对定位,距离父容器的top值为50%,然后通过translate属性让它相对于自身向上移动50%. 其css为: 对于PC来说,就没这么好糊弄了:低版

asp.net动态添加GridView的模板列,并获取列值

一.动态添加模板列: 1.建立模板列样式: 说明:下边代码可以直接写在aspx文件中,也可以单独建立cs文件:另外,我没有写button.linkButton等控件,意思差不多,不过当需要添加事件时,记得将事件名称传入,并附加在控件上 public class GridViewTemplate : ITemplate{ /// <summary> /// 模板类型:标题或内容: /// DataControlRowType.Header和DataControlRowType.DataRow /

动态合并GridView数据行DataRow的列

前段时间,Insus.NET一直在演示GridView控件Header头行或列:<动态变更GridView控件列名>和<动态合并或定制GridView控件Header头某些列>,现今想演示合并Gridview的DataRow中的列. 其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极. 数据库方面的准备,在此例中略过.在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据.如下: 去.aspx.cs的code behind写数据绑定代码

Android 让GridView的高度为Wrap_content根据内容自适应高度

From:http://www.jayway.com/2012/10/04/how-to-make-the-height-of-a-gridview-wrap-its-content/ 如果把GridView放到一个垂直方向滚动的布局中,设置其高度属性为 wrap_content ,则该GridView的高度只有一行内容,其他内容通过滚动来显示. 如果你想让该GridView的高度为所有行内容所占用的实际高度,则可以通过覆写GridView的 onMeasure 函数来修改布局参数: packa

android手机旋转屏幕时让GridView的列数与列宽度自适应

无意中打开了一年前做过的一个android应用的代码,看到里面实现的一个小功能点(如题),现写篇文章做个笔记.当时面临的问题是,在旋转屏幕的时候需要让gridview的列数与宽度能自适应屏幕宽度,每个单元格之间还需要保留一定的间距.因为每款手机的屏幕宽度不都相同,我们在指定了单元格的宽度与间距之后,并不能确定每行中所能容纳的单元格数量,这个数量必须在运行时通过计算得出,同样,我们设置的单元格宽度和间距不能保证刚好容纳在屏幕宽度内,为了解决这个问题,设计了一个简单的算法,首先需要预先指定单元格的宽

使用padding代替高度实现背景图片高度按比例自适应

本篇文章由:http://xinpure.com/use-padding-instead-of-highly-adaptive-background-image-height-proportionately/ 高度百分比 将高度设置成百分比时,其高度是基于父元素来定的,设置成50%,就是将该元素高度设置成 父元素的高度值 x 50%. 但是将高度设置成百分比时,往往是不生效的!高度依然为0,这是为啥? 道理很简单,那就是父元素的高度也为0. 所以这就需要讲到浏览器对宽度及高度是如何计算的. 浏览

CSS技能:运用DIV标签规划最小高度及自在扩展高度

需求在页面最上方运用文档符号运用以上办法时.; 发现需求类似td中height特点既能够确保最小高度又能够完成自在扩展高度的办法.逐步用div规划替换tabl规划的过程中. 通过查找资料和试验.可是该办法在ie6下不支撑,发现min-height能够完成最小高度.所以在款式中添加_height特点,此外关于可变高度的div假如需求自在扩展则不运用height特点即可,假如采用了height则div中的内容太长会跨过下鸿沟. 上下摆放的div1和div2假如div1高度添加后.此刻需求添加clea

CSS技能:运用P规划之最小高度及自在扩展高度

div{clear:both;min-height:100px;_height:100px;}可完成最小高度.关于可变高度的div完成自在扩展高度并关于IE6IE7FireFox兼容. W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/P/xhtml1/DTD/xhtml1-transitional.dtd">运用以上办法时.; 逐步用div规划更换tabl规划的过程中,<逐步用div规划更换tabl规划的过程