解决ListView 和ScroolView 共存 listItem.measure(0, 0) 空指针
2013-10-11 10:04
399 查看
在网上找到ListView 和ScroolView 共存的方法无非是给他每个listview 重新增加高度,但是android 的设计者始终认为这并不是一种好的实现方法。但是有的时候有必须要用这种蛋疼的设计。
于是乎,我网上找到了一个方法:
public class Utility { 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++) { 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); } }
但是我每次调用的时候都会产生在listItem.measure(0,0)报空指针异常。我debug 发现listItem 并不是为空啊,为啥会报错。在经过一番查找之后。我发现原来是自己item的布局用了RelativeLayout 把他换为LinearLayout 就好了。究其原因,原来是 Linearlayout重写了onmeasure方法,其他的布局文件没有重写onmeasure,所以在调用listItem.measure(0, 0); 会报空指针异常,如果想用这个东东,就必须用linearlayout布局喽。
相关文章推荐
- 解决ListView 和ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 和ScroolView 共存 listItem.measure(0, 0) 空指针
- Android ListView 和ScroolView 出现onmeasure空指针的解决办法
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- ScroolView中的ListView冲突问题解决方案
- 解决scrollview与listview共存问题 计算listview的宽高(item中有imageview)
- 优雅的解决SwipeRefreshLayout和ListView的EmptyView共存冲突的问题(全网独创)
- android 开发listview,gridview,scroolview之间的嵌套,出现子view显示不完整解决方法
- Android 解决ListView 和 ScrollView 共存冲突的问题
- ScrollView+ListView滚动冲突,没有滑动效果 解决办法
- android中ScrollView和GridView/ListView共存时,ScrollView不在顶部的解决方法
- ListView getItemViewType ArrayIndexOutOfBoundsException 的解决办法
- [Android]ListView滚动时itemview背景色变成黑色的解决方式
- 安卓解决viewPager+scrollView+listView滑动冲突的问题
- 关于环信EaseUI百度地图切换成高德地图时遇到的mapView.onCreate(savedInstanceState);报空指针的解决办法