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,就不会报错。

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

  1. Android 一个页面上下两个ListView的页面显示

    Android 一个页面上下两个ListView,当上面的ListView过长时,下面的List基本没有了滑动空间,查阅网上资料,解决办法基本是采用ScrollView做页面滑动,notifyData ...

  2. android 一个页面内 多个listview的实现

    如果很平常的两个listview组件竖直放在linearLayout布局中,结果是: 两个listview 很独立,中间似乎有个分割线,完全吧他们分离了,各自独立滚动,如果上面的listview把整个 ...

  3. Android实现页面跳转、ListView及其事件

    Android实现页面跳转.ListView及其事件 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 进入主页面后,使用ListView实现特 ...

  4. android进入页面会定位到ListView问题解决方法

    在我们的页面中如果存在有ListView,当我们进入这个activity时,页面会定位到ListView的位置去,而不是activity的头部,这是由于ListView会去默认获取焦点所造成的. 解决 ...

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

    咕咕咕,好久没来博客园转悠了,最近(这个最近好长啊)一直没时间写博(事实上也不知道写点什么有逼格的东西),所以一直都在潜水,,,(此处省略n字) 好了切入正题,关于如何把网站的所有流量引向一个页面的方 ...

  6. Android 进入页面默认定位到ListView的解决方法

    由于ListView会默认去获取焦点,如果说ListView在页面的下方的话,那么点击条目进入新页面并退出,那么这时候就会定位到ListView这里,而不是展示头部.   解决这个问题,只需要在Lis ...

  7. android 通过页面上关键字快速定位代码

    这里定位微信关于页面, 当然可以直接获取当前最顶层activity 反编译apk后 搜索 strings.xml,找到对应id 搜索文件到用到id对应的成员变量,通常 是在R*.smali文件中 字符 ...

  8. 使用BeautifulSoup 爬取一个页面上的所有的超链接

    # !/usr/bin/python # -*-coding:utf-8-*- import urllib from bs4 import BeautifulSoup response = urlli ...

  9. 一个页面上调用多个setInterval失效解决办法(使用于同一时间间隔)

    将方法封装在一起,只调用一个setInterval window.setInterval( function () { $.ajax({ type: "GET", url: '/M ...

随机推荐

  1. authorization 元素(ASP.NET 设置架构)

    authorization 元素(ASP.NET 设置架构) 其他版本 1(共 1)对本文的评价是有帮助 - 评价此主题 [本文档仅供预览,在以后的发行版中可能会发生更改.包含的空白主题用作占位符.] ...

  2. HttpWebRequest和WebClient的区别

     HttpWebRequest和WebClient的区别(From Linzheng): 1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Creat ...

  3. Enze frist day

    今天是我来到云和学院正式开班上课的第一天,我选择学习的科目是.net.因为.net我在学校的时候接触过一些,所以我想要更加深入的去学习.我觉得一个学生在学习上最怕的是没有遇到一位负责任的好老师,但幸运 ...

  4. C# Socket select模型

    http://www.cnblogs.com/Clingingboy/archive/2011/07/04/2097806.html http://www.cnblogs.com/RascallySn ...

  5. PHP 导入excel

    db.php为数据库操作类, $config为数据库配置,PHPExcel版本为PHPExcel_1.8.0,  PHP代码: header("Content-type:text/html; ...

  6. [LeetCode]题解(python):011-Container With Most Water

    题目来源: https://leetcode.com/problems/container-with-most-water/ 题意分析: 给出一个n长度的非0数组,a1,a2,……,an,ai代表在坐 ...

  7. hdu 4465 Candy 2012 成都现场赛

    /** 对于大数的很好的应用,,缩小放大,,保持精度 **/ #include <iostream> #include <cmath> #include <algorit ...

  8. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  9. js 时间戳转为日期格式

    原文:js 时间戳转为日期格式 js 时间戳转为日期格式 什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time) ...

  10. 最短路Dijkstra和Flyod

    Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...