ScrollView嵌套ListView的bug问题解决

详解嵌套ListView、ScrollView布局显示不全的问题 在项目开发中,可能经常遇到嵌套ListView、ScrollView的问题,百度一搜,都是现成的代码,而且都是一样的,就是重写onMeasure方法,但是为什么要那么写,估计就没多少人知道了,这里进行深入的剖析一下下,重点看onMeasure方法,代码如下:/** * Created by hailonghan on 15/5/28. */ public class ExpandListView 阅读详情

1,ScrollView里面的listView高度无法算出来,通常只能显示listview的其中一行

2,listview列表不能滚动

解决方法:

  1,在设置完ListView的Adapter后,根据ListView的子项目重新计算ListView的高度,然后把高度再作为LayoutParams设置给ListView,这样它的高度就正确显示了。

代码如下:

[java]  view plain  copy
  1. public class ListViewUtility {  
  2.   
  3.     public static void setListViewHeightBasedOnChildren(ListView listView){  
  4.         ListAdapter listAdapter = listView.getAdapter();  
  5.         if (listAdapter==null){  
  6.             return;  
  7.         }  
  8.         int totalHeight = 0;  
  9.         for (int i=0;i<listAdapter.getCount();i++){  
  10.             View listItem = listAdapter.getView(i, null, listView);  
  11.             listItem.measure(0, 0);  
  12.             totalHeight += listItem.getMeasuredHeight();  
  13.         }  
  14.         ViewGroup.LayoutParams params = listView.getLayoutParams();  
  15.         params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));  
  16.         listView.setLayoutParams(params);  
  17.     }  
  18. }  

参考:http://blog.youkuaiyun.com/hitlion2008/article/details/6737459

2,解决方法二:

自定义Listview,并且重写其onMeasure()方法
代码如下:





public class MyListView extends ListView{
public MyListView(Context context) {
super(context);
}

public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec
,MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST));
}
}


 




[java]  view plain  copy
  1. @Override  
  2.    /** 
  3.     * 重写该方法,达到使ListView适应ScrollView的效果 
  4.     * Integer.MAX_VALUE >> 2,如果不设置,系统默认设置是显示两条 
  5.    */  
  6.    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
  7.        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);  
  8.        super.onMeasure(widthMeasureSpec, expandSpec);  

  1.    }  

 

原本地址: http://blog.youkuaiyun.com/kkijhuybjju/article/details/53151006

Android中自定义ListView,解决scrollview嵌套listview 滑动事件冲突 Android中自定义ListView,解决scrollview嵌套listview 滑动事件冲突,是非常常见的问题,我写了一个例子和大家交流学习 立即下载

相关推荐

数据分析实战:如何用皮尔逊相关系数避免伪相关陷阱(附Python代码)

本文通过实战案例与Python代码,深入解析了皮尔逊相关系数在数据分析中的应用与常见陷阱。文章重点揭示了如何识别与避免由混杂变量导致的伪相关,并介绍了通过可视化、敏感性分析、分层分析与偏相关分析等方法来检验相关性的可靠性,帮助分析师建立严谨的相关性思维。

weixin_29051245的博客 411

ScrollView嵌套ListView时Bug解决以及ExpandableListView设置全部展开

ExpandableListView设置全部展开以及ScrollView嵌套ListView时Bug解决

xhuww的博客 1686

RADIOML 2018.01A数据集在自动调制识别中的实战应用指南

本文提供了RADIOML 2018.01A数据集在自动调制识别(AMR)任务中的完整实战指南。内容涵盖从数据集介绍、数据获取与解包、高效预处理流程,到构建PyTorch数据管道、模型设计(如1D CNN、ResNet)以及训练调参策略。重点阐述了如何利用该数据集训练鲁棒的AI模型,以应对复杂信道环境和低信噪比挑战,并给出了详细的性能评估方法。

plant的博客 174

ScrollView嵌套ListView冲突问题解决方案

今天在做项目时,使用Activity 嵌套一个Fragment时出现了Fragment的界面不是顶部的现象,刚开始不知道怎么回事,经检查发现是因为Fragment里面使用了ScrollView 嵌套的 ListView导致的原因, 下面介绍一下:  我Activity的布局只有一个FrameLayout 使用的是 getSupportFragmentManager().beginTra

songwenhui100的博客 412

保姆级教程:用STM32F103C8T6和MAX6675搞定K型热电偶测温(附模拟/硬件SPI双版本代码)

本文提供STM32F103C8T6与MAX6675实现K型热电偶高精度测温的保姆级教程,涵盖硬件连接、SPI驱动实现及模拟SPI方案,并附双版本代码。详细解析温度数据读取、处理及常见问题排查,助力工业控制、实验室设备等场景的稳定测温系统搭建。

weixin_30765505的博客 587

反激变压器设计学习笔记

反激变压器匝比感量设计

m0_55419117的博客 5263

深度了解scrollview嵌套listview会出现的bug及解决方案

图形绘制

源式羽语 816

【数字人实战】Windows系统下Fun-CosyVoice3-0.5B-2512本地部署的避坑指南与疑难解析

本文详细介绍了在Windows系统下本地部署Fun-CosyVoice3-0.5B-2512的避坑指南与疑难解析,包括Python环境准备、源码获取、依赖安装、模型下载与WebUI启动等关键步骤。特别针对Windows环境下的常见问题提供了实用解决方案,帮助开发者高效完成部署并充分利用其语音转换与多语言支持功能。

weixin_42521856的博客 376

ScrollView嵌套ListView、RecyclerView,使其高度自适应

1、针对ScrollView嵌套ListView时只显示第一个item高度的bug,可在activity里动态修改ListView的高度(即计算每个item和分割线的高度后进行相加得到总高度),在setAdapter之后调用下面这个函数即可。 值得注意的是,此时ListView的子item根布局应设为LinearLayout。 private void setListViewHeightB...

qq_29651765的博客 597

C++高级数据结构算法 | 二叉树的四种遍历算法详解(递归与非递归实现)

二叉树遍历方法 、前序遍历算法 、中序遍历算法 、后序遍历算法 、层序遍历算法

ZY-JIMMY 2565

[Dify实战] 项目复盘助手:自动拉数据、生成复盘报告

本文介绍如何利用Dify平台构建自动化项目复盘助手,解决传统人工复盘效率低、易遗漏等问题。系统通过自动拉取Git/Jira等数据源,计算关键指标后,由LLM生成结构化复盘报告。文章详细讲解了数据采集、指标计算、Prompt设计等核心模块的实现,并分享了完整Workflow搭建步骤。实践表明,该系统能将复盘耗时从4小时缩短至10分钟,显著提升数据准确率和执行频率。最后总结了数据一致性、输出质量等常见问题的解决方案,强调Dify+LLM组合可实现复盘流程的自动化流水线。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 118

232.scrollview里面嵌套listview,listview收缩起来

scrollview里面嵌套listview是一种很不好的做法,最好还是使用一个listview,将其他需要滑动的部分添加为头布局脚部局,或者在adapter里面将头脚用一个标志位去判断作为单独的item,这样性能是最完好的,不容易出现bug。 当然了,难免有人会用到的,会出现只显示一个item的bug,解决办法有两种。一种是自定义一个WrapContentListview,很简单的继承自Lis...

augfun的博客 234

增量学习入门:概念、代码示例与应用场景

在当今快速变化的数据环境中,传统的机器学习模型往往需要重新训练以适应新的数据。然而,这种方法不仅耗时耗力,还可能导致模型性能的不稳定。增量学习(Incremental Learning)作为一种新兴的学习范式,能够在新数据到来时动态更新模型,而无需重新训练整个模型。本文将详细介绍增量学习的基本概念、代码示例、应用场景以及需要注意的事项。增量学习作为一种高效的机器学习方法,能够在新数据到来时动态更新模型,具有广泛的应用前景。通过本文的介绍,相信你对增量学习有了初步的了解。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1152

ScrollView中嵌套ListView的问题

ScrollView中嵌套ListView的问题 网上关于怎样在ScrollView中嵌套ListView的讨论有很多,我大概是搜索了一下,简单总结如下: 1.不要在ScrollView中嵌套ListView         a.用一个LinearLayout来代替ListView。里面的item通过addView添加进去。         b.不用ScrollView

breeze666的专栏 669

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android下activity中多个listview只允许主界面滚动

之前发现了自己的APP在处理两个listview时产生的一个bug。当两个listview中的item数量多出手机屏幕时,listview不能显示完全。一开始觉得只要加一个scrollview就可以了,但是后来发现想法是错误的,因为listview本身也是一个scrollview,那么scrollview嵌套scrollview的问题就很麻烦了,到底把滚动权交给谁,结果是哪个listview都不能

小脸龙的老巢 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android开发BUG集锦

本文记录了一些项目开发中遇到的小bug,相信大部分大家都遇到过,在这里把解决方法记录下来,以供参考和回顾。1.软键盘问题有时候需要人工去干预软键盘的隐藏与显示,在这里将方法记录下来。 隐藏软键盘:InputMethodManager manager= (InputMethodManager) view.getContext().getSystemService(INPUT_METHOD_SER

秉心说 913

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ScrollView+Fragment+ListView嵌套ListView,麻麻再也不用担心我不会写嵌套

之前写了一篇文章 android ListView/GridView与ScrollView嵌套的滑动冲突解决 介绍了如何解决ScrollView与AdapterView的嵌套,但是没有给出demo,那是因为那些代码比较多,而且是在手头的项目里,业务逻辑代码比较多,所以第一时间没有分享给大家。 今天终于有空把这些代码全部抽离了出来,并且去掉了业务代码和不必要的内容,以便大家能够更好的学习。

尘笑ys 4013

ScrollView嵌套listview显示一行bug

首先看看修复bug之后的显示对比图,结果一目了然 显示一行之前 修改bug之后 主要就是ScrollView嵌套listview显示计算 直接上代码 一目了然 1 <com.wechaotou.utils.MyListView 2 android:id="@+id/group_list" 3 ...

weixin_30527143的博客 189

Android ScrollView 嵌套 ListView、 ListView 嵌套ScrollView Scroll事件冲突解决办法

本人菜鸟一名,最近工作了,开始学习Android。 最近在做项目的时候,UX给了个design,大概就是下拉刷新的ListView中嵌套了ScrollView,而且还要在ScrollView中添加动画。 在ListView中嵌套使用ScrollView这种方式是不推荐使用的,但是为了满足UX的设计(UX、QA至上,不然BUG绝逼要来)。 为了解决这个问题,菜鸡开始网上查阅资料,但是...

dhk1980的博客 164

android listview与scrollview,Android中ScrollView嵌套Listview的坑

ScrollView跟Listview都是两个使用相当频繁的控件,两者一起使用的情况也不少,当然其中的坑也不少。今天在写布局的时候遇到了个问题,在ScrollView 中嵌套 ListView时,最后的数据只能显示一条。排查了下布局确定没有出错,打断点发现传入adapter的list数据也不止一条,上网查了一下发现这两个嵌套确实会有问题。查到的原因就是scrollView中的ListView在计算...

weixin_39692172的博客 466

ScrollView中嵌套ListView的完美解决方案

在ScrollView中嵌套ListView的时候往往会出现滑动事件导致冲突而使ListView显示不全的问题,而这个问题网上百度会得到一个很普遍的答案,就是重新计算ListView的高度,然后再讲其高度重新赋值给ListView,下面贴出代码解决方案: /** * 动态设置ListView的高度 * @param listView */ public static void setListVi

倩倩的博客专属领地 678

Android-ListView和ScrollView内嵌套listview的问题

ListView和ScrollView存在一个bug,在这两个组件内再嵌套一个listview,里面的那个listview因为无法确定高度,导致只会显示一条记录,无论你的getcount是几都只会显示一条,有两种做法可以处理,一种是计算内部listview的高度,并指定高度 如下代码: private void setListViewHeightBasedOnChildren(List

奋学者|林静的学习车间 301

android listview 行高度自适应,ScrollView嵌套ListView、RecyclerView,使其高度自适应

最终效果今天在制作一个页面,思路是这样的:整个布局以ScrollView进行嵌套,布局里面包含ListView和RecyclerView。点击“TA的语录”按钮,则呈现ListView列表,此时RecyclerView设置不可见,点击“TA的笔记”按钮,则呈现RecyclerView列表,此时ListView设置不可见。然而在测试时发现ListView和RecyclerView都显示不完整,高度无...

weixin_35347870的博客 827

ScrollView嵌套listview滑动位置底部bug

三种方案,个人推荐第三种: 1 sv.fullScroll(ScrollView.FOCUS_UP); 2 sv.setScrollY(0); 3 sv.smoothScrollTo(0,20); 滑动冲突解决listView: public class ListViewForScrollView extends ListView { public ListViewFor

u013378580的博客 1046
上一篇: Android开发——Android中常见的4种线程池(保证你能看懂并理解)
下一篇: 代码规范
xy%
xy%
博客等级 码龄11年 10粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值