当前位置: 首页 > news >正文

2024-08-05升级问题:Android中ScrollView嵌套listview并解决listview显示问题

问题:

当ScrollView嵌套ListView时,ListView的高度设置为wrap_content时出现ListView的高度不能完全展开,而只显示的第一个Item。

解决方法:

按item的个数乘以高度计算出listview的总高度,并在数据变化时直接设置listview高度,保证完全显示。

具体如下:

1、计算高度:

    private int getListViewHeight(ListView listView){ListAdapter listAdapter = listView.getAdapter();if(listAdapter==null)return 0;int totalHeight = 0;int itemHeight = 0;int count = listAdapter.getCount();for(int i=0;i<count;i++){View itemView = listAdapter.getView(i,null,listView);itemView.measure(0,0);itemHeight = itemView.getMeasuredHeight();totalHeight += itemView.getMeasuredHeight();}int dividerHeight = listView.getDividerHeight() * (count-1);int itemHeight_1 = listView.getResources().getDimensionPixelSize(R.dimen.gnss_item_height);int re = itemHeight_1 * (count+6);return re;//(totalHeight + dividerHeight);}

2、动态设置控件高度:

        ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = getListViewHeight(listView);listView.setLayoutParams(params);

问题解决。

参考链接:

https://blog.51cto.com/u_16175497/9499844

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在Ubuntu 16.04上安装Jenkins的方法
  • 第N8周:使用Word2vec实现文本分类
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • C语言:for、while、do-while循环语句
  • Android系统架构
  • Spring 声明式事务 @Transactional
  • 【STM32单片机_(HAL库)】3-2-3【中断EXTI】【电动车报警器项目】433M无线收发模块实验
  • 【LeetCode热题100】滑动窗口
  • Spring MVC中获取请求参数的方式
  • leetcode_55. 跳跃游戏
  • 【杂乱算法】七种常见的排序
  • 如何使用unittest和pytest进行python脚本的单元测试
  • 计算机储存单位换算:1KB等于多少GB
  • MS8561/8562精密、低噪、CMOS、轨到轨输入输出运算放大器
  • AWS 注册一年后是否需要花钱?
  • [数据结构]链表的实现在PHP中
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【css3】浏览器内核及其兼容性
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular4 模板式表单用法以及验证
  • CSS实用技巧
  • DOM的那些事
  • Javascript Math对象和Date对象常用方法详解
  • Java多线程(4):使用线程池执行定时任务
  • mysql中InnoDB引擎中页的概念
  • ng6--错误信息小结(持续更新)
  • tweak 支持第三方库
  • vue-loader 源码解析系列之 selector
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 订阅Forge Viewer所有的事件
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分布式任务队列Celery
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 警报:线上事故之CountDownLatch的威力
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 听说你叫Java(二)–Servlet请求
  •  一套莫尔斯电报听写、翻译系统
  • 原生 js 实现移动端 Touch 滑动反弹
  • ​​​【收录 Hello 算法】9.4 小结
  • ​MySQL主从复制一致性检测
  • !!Dom4j 学习笔记
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #{} 和 ${}区别
  • #Linux(make工具和makefile文件以及makefile语法)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)(2.10) LTM telemetry
  • (2)nginx 安装、启停
  • (c语言)strcpy函数用法
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Java入门)学生管理系统
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]