欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发实现ScrollView中嵌套两个ListView的方法

程序员文章站 2024-01-22 08:55:58
本文实例讲述了android开发实现scrollview中嵌套两个listview的方法。分享给大家供大家参考,具体如下: 做的项目中要使用两个listview在同一个页...

本文实例讲述了android开发实现scrollview中嵌套两个listview的方法。分享给大家供大家参考,具体如下:

做的项目中要使用两个listview在同一个页面上下显示,因为数据源不同,不能通过在adapter中设置标志位去区分显示,最后只能硬着头皮做一个scrollview嵌套两个listview,但按正常情况是不能同时显示的,会出现上面的listview完全显示,下面的只显示一个item,查了一些资料终于成功了

主要有一个listviewutility ,代码如下:

import java.io.file;
import android.content.intent;
import android.net.uri;
import android.view.view;
import android.view.viewgroup;
import android.widget.listadapter;
import android.widget.listview;
public class listviewutility {  // 是一个scrollview 中 添加两个listview的显示布局
  public static void setlistviewheightbasedonchildren(listview listview) {
    listadapter listadapter = listview.getadapter();
    if (listadapter == null) {
      // pre-condition
      return;
    }
    int totalheight = 0;
    for (int i = 0; i < listadapter.getcount(); i++) {
//     global.pos = i;
      view listitem = listadapter.getview(i, null, listview);
      listitem.measure(0, 0);
      totalheight += listitem.getmeasuredheight();
    }
    viewgroup.layoutparams params = listview.getlayoutparams();
    params.height = totalheight + (listview.getdividerheight() * (listadapter.getcount() - 1));
    listview.setlayoutparams(params);
  }
}

然后再写两个listview,如下

signlistview.setadapter(myinggaosignlistadapter);
applistview.setadapter(adapter);
listviewutility.setlistviewheightbasedonchildren(signlistview);
listviewutility.setlistviewheightbasedonchildren(applistview);

最后把两个listview添加到 listviewutility中,并且两个listview要填充完再添加,两个listview中的adpter的布局最外层要使用linearlayout,只有linearlayout 在listviewutility 中才能成功测量每个item 的高度,不然就会出错

更多关于android相关内容感兴趣的读者可查看本站专题:《android基本组件用法总结》、《android开发入门与进阶教程》、《android布局layout技巧总结》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android资源操作技巧汇总》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。