欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

ScrollView嵌套ListView及ListView嵌套的高度计算方法

时间:2021-09-27 09:43:46|栏目:Android代码|点击:

引言

在Android开发中,我们有时会需要使用ScrollView中嵌套ListView的需求。例如:在展示信息的ListView上还有一部分信息展示区域,并且要求这部分信息展示区域在ListView信息比较多的时候也是可以滑动的,而不是固定不变的。这时,我们一般会将ScrollView和ListView嵌套在一起使用。但是这会导致ListView展示不全,然后也会有滑动冲突问题。下面我们来看看怎么解决。

解决方案

主动计算和设置ListView的高度,这样就可以合理的展示ListView的高度。代码如下:

public void setListViewHeightBasedOnChildren(ListView listView) {
  // 获取ListView对应的Adapter
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null) {
   return;
  }
  int totalHeight = 0;
  // listAdapter.getCount()返回数据项的数目
  for (int i = 0; i < listAdapter.getCount(); i++) {
   View listItem = listAdapter.getView(i, null, listView);
   // 计算子项View 的宽高
   listItem.measure(0, 0);
   // 统计所有子项的总高度
   totalHeight += listItem.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  // listView.getDividerHeight()获取子项间分隔符占用的高度
  // params.height最后得到整个ListView完整显示需要的高度
  listView.setLayoutParams(params);
 }

上一篇:Android响应事件onClick方法的五种实现方式小结

栏    目:Android代码

下一篇:Android中封装RecyclerView实现添加头部和底部示例代码

本文标题:ScrollView嵌套ListView及ListView嵌套的高度计算方法

本文地址:http://www.codeinn.net/misctech/177636.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有