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

 更新时间:2018年01月04日 14:18:04   作者:dreamGong  
下面小编就为大家分享一篇ScrollView嵌套ListView及ListView嵌套的高度计算方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

引言

在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);
 }

以上这篇ScrollView嵌套ListView及ListView嵌套的高度计算方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 实例讲解Android中的View类以及自定义View控件的方法

    实例讲解Android中的View类以及自定义View控件的方法

    这篇文章主要介绍了Android中的View类以及自定义View控件的方法,讲解了如何继承View类并且展示了一个对View进行重绘的例子,需要的朋友可以参考下
    2016-04-04
  • Android中通过反射实现圆角ImageView代码实例

    Android中通过反射实现圆角ImageView代码实例

    这篇文章主要介绍了Android中通过反射实现圆角ImageView代码实例,本文直接给出核心实现代码,需要的朋友可以参考下
    2015-04-04
  • Android编程实现TextView部分颜色变动的方法

    Android编程实现TextView部分颜色变动的方法

    这篇文章主要介绍了Android编程实现TextView部分颜色变动的方法,实例分析了TextView设置指定位置的背景色与字体颜色的相关技巧,需要的朋友可以参考下
    2015-12-12
  • android列表控件实现展开、收缩功能

    android列表控件实现展开、收缩功能

    这篇文章主要为大家详细介绍了android支持展开/收缩功能的列表控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • RadioButton实现选择后可取消选择

    RadioButton实现选择后可取消选择

    这篇文章主要为大家详细介绍了RadioButton实现选择后可取消选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 在Android打包中区分测试和正式环境浅析

    在Android打包中区分测试和正式环境浅析

    这篇文章主要给大家介绍了关于在Android打包中如何区分测试和正式环境的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2017-10-10
  • Android如何从实现到封装一个MVP详解

    Android如何从实现到封装一个MVP详解

    原生的 MVC 框架遇到大规模的应用,就会变得代码难读,不好维护,无法测试的囧境。因此,Android 开发方面也有很多对应的框架来解决这些问题。所以这篇文章主要给大家介绍了关于Android如何从实现到封装一个MVP的相关资料,需要的朋友可以参考下。
    2017-09-09
  • Android实现Tab切换界面功能详解

    Android实现Tab切换界面功能详解

    这篇文章主要为大家详细介绍了Android如何实现Tab切换界面的功能,以及对Tab变化事件进行监听。文中示例代码讲解详细,感兴趣的可以了解一下
    2022-05-05
  • Android设备上非root的抓包实现方法(Tcpdump方法)

    Android设备上非root的抓包实现方法(Tcpdump方法)

    通常我们在Android应用中执行某个命令时会使用“Runtime.getRuntime().exec("命令路径")”这种方式,但是当我们执行抓包操作时,使用这条命令无论如何都不行,通过下面代码打印结果发现,该命令一定要在root权限下才能执行,具体实现思路,请参考本教程
    2016-11-11
  • Kotlin 协程与挂起函数及suspend关键字深入理解

    Kotlin 协程与挂起函数及suspend关键字深入理解

    这篇文章主要为大家介绍了Kotlin 协程与挂起函数及suspend关键字深入理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论