Android开发实现ScrollView中嵌套两个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程序设计有所帮助。
相关文章
android2.3.5 CDMA/EVDO拨号APN解决方案
google提供的android2.3里面,只能在GSM/WCDMA情况下才能从“设置”->“无线和网络”->“移动网络”->“接入点名称”中选择不同的apn帐号进行拨号连接,而CDMA/EVDO则没有这个功能,接下来本文介绍一些方法实现这个功能,感兴趣的朋友可以了解下2013-01-01完美解决EditText和ScrollView的滚动冲突(上)
这篇文章主要为大家详细介绍了完美解决EditText和ScrollView滚动冲突的方法,感兴趣的小伙伴们可以参考一下2016-06-06Android 扫码枪输入时屏蔽软键盘和顶部状态栏的解决方案
在Android设备上,使用扫码枪时常遇到软键盘和顶部状态栏显示问题,本文介绍了在Android 7.1.2版本上,如何通过设置inputType为none屏蔽软键盘,以及通过hideStatusBar和NoActionBar方法隐藏顶部状态栏,以优化扫码枪使用界面,这些方法有助于提升使用扫码枪场景的用户体验2024-10-10Android AsyncTask完全解析 带你从源码的角度彻底理解
这篇文章主要是针对Android AsyncTask进行完全解析,带你从源码的角度彻底理解,感兴趣的小伙伴们可以参考一下2016-04-04android 中 SQLiteOpenHelper的封装使用详解
这篇文章主要介绍了android 中 SQLiteOpenHelper的封装使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-02-02
最新评论