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

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

调用以下方法:

[java] view
plain
copyprint?

  1. public static void setListViewHeightBasedOnChildren(GridView listView) {  
  2.     // 获取listview的adapter  
  3.        ListAdapter listAdapter = listView.getAdapter();  
  4.        if (listAdapter == null) {  
  5.            return;  
  6.        }  
  7.        // 固定列宽,有多少列  
  8.        int col = 4;// listView.getNumColumns();  
  9.        int totalHeight = 0;  
  10.        // i每次加4,相当于listAdapter.getCount()小于等于4时 循环一次,计算一次item的高度,  
  11.        // listAdapter.getCount()小于等于8时计算两次高度相加  
  12.        for (int i = 0; i < listAdapter.getCount(); i += col) {  
  13.         // 获取listview的每一个item  
  14.            View listItem = listAdapter.getView(i, null, listView);  
  15.            listItem.measure(0, 0);  
  16.            // 获取item的高度和  
  17.            totalHeight += listItem.getMeasuredHeight();  
  18.        }  
  19.   
  20.        // 获取listview的布局参数  
  21.        ViewGroup.LayoutParams params = listView.getLayoutParams();  
  22.        // 设置高度  
  23.        params.height = totalHeight;  
  24.        // 设置margin  
  25.        ((MarginLayoutParams) params).setMargins(10, 10, 10, 10);  
  26.        // 设置参数  
  27.        listView.setLayoutParams(params);  
  28.    }  

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

时间: 2024-09-12 10:13:41

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

关于android动态获取listview高度的问题

问题描述 关于android动态获取listview高度的问题 最近在拿一个聊天机器人的对话板块来练手,用到了一个listview动态设定高度的问题.结果改了很多时候仍有一个bug:当scrollview开始翻页之后,每次的发送在下面都会有一段空白.当发送的消息多了之后,下面明显会多出一段空白区. 我用setenable(true)试过,点不了,所以应该不是多出来的item,但是也不知道是什么,但应该是高度获取错误,可是代码也是网上通用的,求指导,求修改,赋源代码. 谢谢.

动态表头 固定-Gridview中怎么固定动态生成的表头?

问题描述 Gridview中怎么固定动态生成的表头? Gridview中固定表头的方法很多,但是如果是在后台生成的动态模板列的时候,表头是后台生成的,用CSS和js不能实现固定表头,那请问怎么样将其进行表头固定?求大神指导!谢谢!

Android动态加载布局_Android

ListView我们一直都在用,只不过当Adapter中的内容比较多的时候我们有时候没办法去设置一些组件,举个例子: 可以看到京东的故事里面的这样一个布局,这个布局可以说是我目前见到的内容比较多的了,它的每一项都包含头像.姓名.分类.内容.图片.喜欢.评论.分享以及喜欢的头像.分析了一下布局之后我们不难发现,除了喜欢头像这部分,其余的都很好实现. 那么下面着重说一下这个头像这部分怎么实现? 第一种方案:我们可以用GridView来实现,GridView和ListView的用法是一样的,俗称九宫格

Android动态加载入坑指南

曾几何时,国内各大公司掀起了一股研究Android动态加载的技术,两年多过去了,动态加载技术俨然成了Android开发中必须掌握的技术.那么动态加载技术是什么呢,这里谈谈我的个人看法,如有雷同,纯属偶然. 什么是动态加载技术 对于动态加载的概念,没有一个权威的定义,参考网上的解释,我们举一个例子,动态加载代码就是通过在运行时加载外部代码(磁盘,网络等)改变程序行为的技术(感觉有点像装饰者模式).主要目的是为了达到让用户不用重新安装APK就能升级应用的功能. 为了加深大家对这种概念的理解,我们结合

Android中使用GridView实现仿微信图片上传功能(附源代码)

由于工作要求最近在使用GridView完成图片的批量上传功能,我的例子当中包含仿微信图片上传.拍照.本地选择.相片裁剪等功能,如果有需要的朋友可以看一下,希望我的实际经验能对您有所帮助. 直接上图,下面的图片就是点击"加号"后弹出的对话框,通过对话框可以根据自己需求进行相片选择. 项目结构: 下面直接上代码. 整体的布局文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/

Android网格视图(GridView)

GridView的一些属性: 1.android:numColumns="auto_fit"   //GridView的列数设置为自动,也可以设置成2.3.4-- 2.android:columnWidth="90dp "       //每列的宽度,也就是Item的宽度 3.android:stretchMode="columnWidth"//缩放与列宽大小同步 4.android:verticalSpacing="10dp"

Android ImageView设置长度高度为wrap_content时高度根据图片比例自适应

<ImageView android:id="@+id/img_1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:scaleType="centerInside" android:src="@drawable/im

android 中的listview item中如何放置一个高度超过item的imageview

问题描述 android 中的listview item中如何放置一个高度超过item的imageview android 中的listview item中如何放置一个高度超过item的imageview. 现在项目有需求,需要在一个listview的item中放置一个imageview,而imageview的高度要 超过这个item,是他看起来只显示imageview的一部分.大伙有思路吗? 解决方案 [android]ListView的item高度调整android给listview的ite

Android 动态改变SeekBar进度条颜色与滑块颜色的实例代码_Android

遇到个动态改变SeekBar进度条颜色与滑块颜色的需求,有的是根据不同进度改变成不同颜色. 对于这个怎么做呢?大家都知道设置下progressDrawable与thumb即可,但是这样设置好就是确定的了,要动态更改需要在代码里实现. 用shape进度条与滑块 SeekBar设置 代码里动态设置setProgressDrawable与setThumb 画图形,大家都比较熟悉,background是背景图,secondaryProgress第二进度条,progress进度条: <layer-list