码迷,mamicode.com
首页 > 其他好文 > 详细

NestedScrollView嵌套ListView滑动冲突

时间:2016-02-29 19:50:46      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

   时间:2015年12月22日16:12:34

  1. 问题描述:
         1)  在android.support.v4.widget.NestedScrollView中直接嵌套ListView时出现的情况:listview显示不全只有一行或者两行。
         2) 如果listview的item中有根据id选择选项会导致选择错乱,现在(2015年12月22日16:13:55)碰到的问题是:listview中包含有switch控件,
              用来对该item是否可用进行判断,但是现在冲突导致的listview中位置错乱。

    2.解决方法:   计算出每一个item的高度,此方法用在listview.setAdapter()后。         
         
     
  1. private void setListViewHeightBasedOnChildren(ListView listView) {
  2. ListAdapter listAdapter = listView.getAdapter(); //获得Adapter
  3. if (listAdapter == null) { //判断是否为空
  4. return;
  5. }
  6. int totalHeight = 0; //定义总高度
  7. //根据listAdapter.getCount()获取当前拥有多少个item项,然后进行遍历对每一个item获取高度再相加最终获得总的高度。
  8. for (int i = 0; i < listAdapter.getCount(); i++) {
  9. View listItem = listAdapter.getView(i, null, listView);
  10. listItem.measure(0, 0);
  11. totalHeight += listItem.getMeasuredHeight();
  12. }
  13. //获取到list的布局属性
  14. ViewGroup.LayoutParams params = listView.getLayoutParams();
  15. //listview最终高度为item的高度+分隔线的高度,这是重新设置listview的属性
  16. params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  17. //将重新设置的params再应用到listview中
  18. listView.setLayoutParams(params);
  19. }









NestedScrollView嵌套ListView滑动冲突

标签:

原文地址:http://www.cnblogs.com/yuzhongzheng/p/5228401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!