解决android的ListView嵌套在ScrollView中不能被滚动的问题
2015-09-24 22:54
756 查看
使用滚动条容易带来一个后果,就是高度和宽度不受控制了,
之前就遇到一个已经有ScrollView的页面需要加个列表listView,然后就发现listView只看到前两行数据,下面的看不到,拉滚动条也只是滚动整个页面,而不是listview。
方法1:让外面的ScollView交出滚动权限,因为listview自身就有滚动条。
方法2:通过计算装在内容后的list高度,然后设置高度。
只要在你给你的listView设置适配器后,再重新设置listview的高度,思路是,算出每行的高度,给listview设置高度为:每行的高度*行数+各行间分隔线的高度,即可。
传入listview,方法中会改变其参数,设置其高度。0.0
之前就遇到一个已经有ScrollView的页面需要加个列表listView,然后就发现listView只看到前两行数据,下面的看不到,拉滚动条也只是滚动整个页面,而不是listview。
方法1:让外面的ScollView交出滚动权限,因为listview自身就有滚动条。
方法2:通过计算装在内容后的list高度,然后设置高度。
只要在你给你的listView设置适配器后,再重新设置listview的高度,思路是,算出每行的高度,给listview设置高度为:每行的高度*行数+各行间分隔线的高度,即可。
public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); 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,方法中会改变其参数,设置其高度。0.0
相关文章推荐
- Android Studio安装SVN
- Android自定义View---正式篇
- android布局
- android EditText 控件中加入图片(非背景图片)
- 【Android测试】【第九节】MonkeyRunner—— 初识
- Android开发经验:成为高手必看的10个建议
- Android中dp,px,sp概念梳理以及如何做到屏幕适配
- android基础知识
- android中dp(dip) px sp
- Android手势操作(双击,长按,滑动,滚动,多点触控)
- android 中在内存中保存文件
- Android播放网页视频以及帧动画
- java泛型操作复习,以及讲解在android中使用的场景
- Android Api Demos登顶之路(八十一)Graphics-->Patterns
- Android 事件的传递机制
- Fetching Android SDK component information
- android PorterDuffXfermode、PorterDuff.Mode 使用
- Android0924(事件传递、手势操作)
- 【Android】openGL单位光的问题
- Android综合小练习Fragment,解析,Handler,ViewPager