android一个页面上多个listview

android一个页面上多个listview,在滚动的时候,需要两个listview能够一起滚动,看起来是一个view。

这个功能的具体实现,参考:  

http://blog.csdn.net/xia296/article/details/8128674

最主要的代码是:

	/**
	 * 设置listview高度,注意listview子项必须为LinearLayout才能调用该方法
	 * @param listview listview
	 *
	 */
	public static void  setListViewHeight(ListView listview){
        int totalHeight = 0;
       ListAdapter adapter= listview.getAdapter();
       if(null != adapter){
        for (int i = 0; i <adapter.getCount(); i++) {
        View listItem = adapter.getView(i, null, listview);
	        if (null != listItem) {
	        listItem.measure(0, 0);//注意listview子项必须为LinearLayout才能调用该方法
	        totalHeight += listItem.getMeasuredHeight();
	        }
        }    

        ViewGroup.LayoutParams params = listview.getLayoutParams();
        params.height = totalHeight + (listview.getDividerHeight() * (listview.getCount() - 1));
        listview.setLayoutParams(params);
       }
    }

具体在代码中的使用这个方法:

    public void loadAdvanceGameView(){
        if (mAdvanceAdapter == null) {
            mAdvanceAdapter = new GameDetailAdapter(mContext, mAdvanceGameList);
            advanceListView.setAdapter(mAdvanceAdapter);
        }else {
            mAdvanceAdapter.notifyDataSetChanged();
        }
        setListViewHeight(advanceListView);
        LoadMyLocalView();
    }

    private void LoadMyLocalView() {
        mLocalGameList.clear();
        mLocalGameList.addAll(AppManager.get().getSelectedAppBeans());
        removeRepeatApp();
        if (mLocalAdapter == null) {
            mLocalAdapter = new AppBeanAdapter(mContext, mLocalGameList);
            localListView.setAdapter(mLocalAdapter);
        }else {
            mLocalAdapter.notifyDataSetChanged();
        }
        setListViewHeight(localListView);
    }

  

我在使用的时候,其中listview里面的item的view是用RelativeLayout创建的。

但是后面测试的时候,在部分机器上报错。

具体的解决方法参考:

分析java.lang.NullPointerException thrown in RelativeLayout measure()

假如开始就是用LinearLayout,就不会报错。

时间: 2024-08-04 10:38:51

android一个页面上多个listview的相关文章

利用PHP获取一个页面上的链接信息

开发中我们可能会获取某个页面或是一段内容中的链接信息,下面我分享一个我写的函数给大家,希望能帮到大家. 函数功能: 1.获取一段内容中链接信息: 2.获取一个URL中链接信息: 3.剔除锚链等无效的链接 4.获取当前域下的链接信息 5.获取他域下的链接信息 6.保留链接的文本信息 代码: /** * +---------------------------------------------------------- * 功能:获取一个网页或一段内容里面的链接信息 * +------------

【真的是随笔】如何利用htaccess把网站流量引到一个页面上(站点维护页效果)

咕咕咕,好久没来博客园转悠了,最近(这个最近好长啊)一直没时间写博(事实上也不知道写点什么有逼格的东西),所以一直都在潜水,,,(此处省略n字) 好了切入正题,关于如何把网站的所有流量引向一个页面的方法有很多,比如像wordpress可以开维护模式或者装一个插件,ThinkPHP应该可以在前面设置一个路由吧(我没试过,只是估计可以),但对于apache来说有种更方便的方法,就是写.htaccess..但是关于怎么写网上有很多资料,但是我怎么搜到的都是错误的(放上目录直接500或者重定向循环了,我

一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化 这些图片的加载,给用户更好的体验

图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端 的距离与页面的距离,如果前者小于后者,优先加载. 如果为幻灯片.相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先 下载. 如果图片为 css 图片,可以使用 CSSsprite,SVGsprite,Iconfont.Base64 等技术. 如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图, 以提高用户体验. 如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需

Android之史上最强ListView优化方案

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能. 本文的重点即是从如下几个方面介绍如何对ListView进行优化. 1.convertView重用 Android SDK中这样讲: the old view to reuse, if possible. Note: You should check that this v

(微信小程序)二 : 创建一个页面。

首先先看一下pages的目录结构吧. 我创建了一个topics页面.3个文件全创建好了之后 我往topics.js添加数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /* ---topics.js----*/ Page({   data:{       topics: [       {title:"初始angular"},       {title:"初始ionic"},       {title:"初始wech

(微信小程序)二 : 创建一个页面

首先先看一下pages的目录结构吧. 我创建了一个topics页面.3个文件全创建好了之后 我往topics.js添加数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /* ---topics.js----*/ Page({   data:{       topics: [       {title:"初始angular"},       {title:"初始ionic"},       {title:"初始wech

页面上有两个jqGrid表格时,冲突问题

如果一个页面上存在多个jqGrid,发现当刷新每一个表格的时候,其实都是第一个表格进行刷新. 当点击第二个表格分页的时候,第一个表格出现刷新,读取中..... 分析jqGrid源码发现: loadDiv = $("#load_"+$.jgrid.jqID(this.p.id)),  通过控制loadDiv 来控制读取中....的呈现状态.而针对loadDiv的选择器是跟jqgrid的id有关. 仔细分析出现这种问题的跟jqgrid对象对应的table有关: 1.未遵循ID选择器唯一性.

android一个注册页面和验证码的实现

先上效果图: 验证码采用PHP返回的imageview来实现,xml如下: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height=&

用js在网页上完成倒计时3秒后自动跳转到另一个页面

<body> <div id="time"></div> <a href="#" onclick="stop()">停止</a> <script type="text/javascript"> var i=3; function changeTime(){ document.getElementById("time").innerHTM