android关于scrollview嵌套ExpandableListView的实现1
2013-10-24 15:04
501 查看
刚开始以为就是和listview一样,用现成的方法
计算出listview的高度 然后在代码中设置一下就行
我把参数ListView换成 ExpandableListView 发现到
这行params一直为null,以为adapter问题 然后修改 ExpandableListAdapter listAdapter = listView.getExpandableListAdapter();发现还是不行 看了下源码
listview继承自AbsListView而ExpandableListView继承自listview。看到这 这不是坑爹吗 这不都一样啊
研究一下之前的计算listview的高度的方法 很简单 拿到adapter 再拿到子view也就是每一项item的高度 计算有多少个 相乘在加上两个item之间的距离 so easy
那ExpandableListView怎么就不行 坑爹呢 这是 然后就发现getAdapter()这个 拿到适配器的这个实例 然后我们再看listview和expandblelistview的适配器
发现listview的适配器继承自BaseAdapter,同时BaseAdapter实现ListAdapter, SpinnerAdapter接口
而expandblelistview的适配器继承自BaseExpandableListAdapter,同时BaseExpandableListAdapter实现ExpandableListAdapter,HeterogeneousExpandableList接口
好吧 没往下研究了 水平有限 -。- 虽然两个adapter看似很多方法相同 但是确实不能用listview的方式来计算expandblelistview的高度 。。。百度好多都说这个方法可以 经确认完全不行的 有木有。。。
下篇进入正题
public static void setListViewHeightBasedOnChildren(ListView listView) { //获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); //计算子项View 的宽高 totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); //listView.getDividerHeight()获取子项间分隔符占用的高度 //params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); }
计算出listview的高度 然后在代码中设置一下就行
我把参数ListView换成 ExpandableListView 发现到
ViewGroup.LayoutParams params = listView.getLayoutParams();
这行params一直为null,以为adapter问题 然后修改 ExpandableListAdapter listAdapter = listView.getExpandableListAdapter();发现还是不行 看了下源码
listview继承自AbsListView而ExpandableListView继承自listview。看到这 这不是坑爹吗 这不都一样啊
研究一下之前的计算listview的高度的方法 很简单 拿到adapter 再拿到子view也就是每一项item的高度 计算有多少个 相乘在加上两个item之间的距离 so easy
那ExpandableListView怎么就不行 坑爹呢 这是 然后就发现getAdapter()这个 拿到适配器的这个实例 然后我们再看listview和expandblelistview的适配器
发现listview的适配器继承自BaseAdapter,同时BaseAdapter实现ListAdapter, SpinnerAdapter接口
而expandblelistview的适配器继承自BaseExpandableListAdapter,同时BaseExpandableListAdapter实现ExpandableListAdapter,HeterogeneousExpandableList接口
好吧 没往下研究了 水平有限 -。- 虽然两个adapter看似很多方法相同 但是确实不能用listview的方式来计算expandblelistview的高度 。。。百度好多都说这个方法可以 经确认完全不行的 有木有。。。
下篇进入正题
相关文章推荐
- android关于scrollview嵌套ExpandableListView的实现2
- Android开发实现ScrollView中嵌套两个ListView的方法
- 关于Android中ScrollView嵌套ListView的问题
- android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
- Android 解决 ScrollView嵌套ListView、GridView冲突显示不全的最快实现
- Android实现listview、expandablelistview、scrollview等组件的下拉或上拉刷新
- android scrollview中嵌套expandablelistview高度问题
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题
- android scrollview中嵌套expandablelistview
- android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
- android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
- Android中关于ScrollView嵌套listView,ListView Item只显示一行的解决方法
- Android ScrollView中嵌套ExpandableListView,item不显示的问题
- android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
- Android-关于一个界面同级中需要两个listView时,一个ListView被嵌套在ScrollView中,ListView的适配器adapter中的getView执行次数重复问题
- Android scrollview中嵌套listview实现listview的下拉刷新上拉加载更多
- android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
- android fragment ,listview 嵌套横向HorizontalScrollView 实现HorizontalScrollView 到最左或者最右切换fragment
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题