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

ScrollView嵌套ListView滑动冲突的解决方法 ScrollView嵌套ListView滑动冲突的解决方案 立即下载

scrollview里面嵌套listview是一种很不好的做法,最好还是使用一个listview,将其他需要滑动的部分添加为头布局脚部局,或者在adapter里面将头脚用一个标志位去判断作为单独的item,这样性能是最完好的,不容易出现bug。

当然了,难免有人会用到的,会出现只显示一个item的bug,解决办法有两种。一种是自定义一个WrapContentListview,很简单的继承自Listview,只需要重写OnMeasure方法

package com.ldw.crossfire.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/**
 * Created by ldw on 2017/1/26.
 */
public class WrapContentListView extends ListView {
    public WrapContentListView(Context context) {
        super(context);
    }

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

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


    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
布局文件中使用自定义的listview
<com.ldw.crossfire.view.WrapContentListView
            android:id="@+id/lv_friends_list"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:divider="#00000000"
            android:visibility="gone"></com.ldw.crossfire.view.WrapContentListView>
使用自定义的listview
private WrapContentListView lv_friends_list;
改成这样就好了。
第二种解决办法:动态设置listview,去测量每个item的高度,通过for循环去叠加计算listview的总高度
/**
 * 解决ScrollView嵌套ListView只显示一条的问题
 * @param listView
 */
public void setListViewHeightBasedOnChildren(ListView listView) {
    // 获取ListView对应的Adapter
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;
    }
    int totalHeight = 0;
    for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
        // listAdapter.getCount()返回数据项的数目
        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);
    listView.invalidate();
}

注意:我在项目中遇到这两个都用不了的情况,具体原因是我的item用的是百分比布局或者是wrapcontent那种,所以叠加的时候发生异常就不会动态计算出高度了
我们所需要做的就是把item中高度设为具体的dp值,这样才可以使用以上两种方法。
TwinCAT3新手必看:5分钟搞定EtherCAT从站PDO动态配置(附电流变量添加技巧) 本文为TwinCAT3新手提供了EtherCAT从站PDO动态配置的快速入门指南。文章详细解析了Process Data Object(PDO)在实时数据交换中的核心作用,并分步演示了在TwinCAT3工程中扫描从站、动态添加与映射PDO(包括接收PDO和发送PDO)的完整操作流程。重点分享了如何灵活添加并监控如电机实际电流等关键工艺变量的高级技巧,并针对不同品牌驱动器的兼容性问题提供了实用的调试心法和解决方案,帮助工程师快速上手并优化工业自动化系统。 阅读详情

相关推荐

SpringBoot不用三方框架,怎么动态调度定时任务,ScheduledExecutorService 详解

Spring Boot 提供了强大的定时任务支持,无需依赖任何第三方框架,即可轻松实现可配置的定时任务。通过使用 `@EnableScheduling` 注解启用定时任务支持后,我们可以利用 `@Scheduled` 注解来定义定时任务的方法,这些方法可以在指定的时间间隔或特定时间点自动执行。 我们还可以通过集成 `ScheduledExecutorService` 来实现灵活的定时任务管理。`ScheduledExecutorService` 是 Java 标准库的一部分,能够以固定速率或延迟执行任务,

横竖撇折点 1939

scrollview里面嵌套listview的坑

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

weixin_30591551的博客 217

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

在3GPP R17协议中,将NB-IoT集成到了NTN(非陆地网络,即卫星通信)中,并定义了一个系统架构。在这个架构中包括一个可配置再生payload的低轨道(LEO)卫星,这意味着该卫星可以执行传统基站的全部或部分功能。该系统架构还可以适配同步轨道(GEO)卫星,这些卫星与LEO卫星类似,也可以配置再生payload。系统高度范围轨道波束覆盖范围LEO300~1500km绕地球转100~1000kmGEO35786km与地球自转同步200~3500km。

2401_84010302的博客 3569

Android中ScrollView嵌套ListView只显示一行的解决方案

Android中ScrollView嵌套ListView只显示一行的解决方案解决方案1: 直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法. 如果一定要在ScrollView中包含ListView,则参考解决方案2:public void showlist() { List<HashMap<String,

东亮博客 1611

Ubuntu22.04安装ROS1

代表使用 2 线程进行编译,可以根据 CPU 适当调整。如果出现小乌龟窗口,说明安装成功 🎉!启动成功,则打开另一个终端,测试。需要解决一些兼容性问题,因为。由于 Ubuntu 22.04。过程,确保成功安装。

asafriend的博客 4647

LaMAR数据集下载和使用流程

LaMAR数据集

qq_51745206的博客 971

解决ScrollView嵌套ListView不滑动,只显示一条,ListView滑到顶部问题

问题:在ScrollView中嵌套ListView,出现的效果是ListView只显示一行,无论高度设置的是match_parent还是wrap_content。1、设置ListView的高度为固定值这样ListView可以滑动,整体ScrollVIew也可以滑动。2、如果给ScrollView设置android:fillViewport=”true”ListView会显示全还可以滑动,但是Scro

hello_1s的博客 1223

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7372

Android中关于ScrollView嵌套listView,ListView Item只显示一行的解决方法

ScrollView+ListView对我这种菜鸟来说还是很管用的,记下来吧

honey_angle_first的博客 632

健康保险费用预测:可解释机器学习在精算建模中的实战落地

健康保险费用预测是医疗AI与保险科技交叉领域的核心任务,本质是基于临床变量与社会因素对个体医疗支出进行风险量化。其技术原理需兼顾统计建模能力与监管可解释性,XGBoost+SHAP组合因支持特征归因、边际效应分析和临床可干预推演,成为保险精算场景的主流选择。该技术显著提升保费定价精度、降低偿付风险,并支撑DRG费用预警、团险核保辅助及再保险尾部风险评估等关键应用。本文聚焦真实产线中的时间序列验证、临床分层特征工程与监管红线指标(如Bias@90th、Calibration Slope),深入解析如何让模型不

weixin_33702545的博客 306

相场断裂模型中的各向异性机制:从裂纹密度到驱动力的数值实现

断裂力学是研究材料在载荷作用下裂纹萌生与扩展规律的基础学科,其核心在于理解材料失效的能量准则与路径选择。传统方法通常预设裂纹路径,而相场断裂模型通过引入连续的相场变量,将裂纹模拟转化为一个能量最小化问题,能够自发预测裂纹的萌生、扩展与分叉,在工程失效分析中具有重要价值。当材料具有显著的方向依赖性时,如单晶、复合材料或轧制金属板,各向同性假设会失效,此时需引入各向异性机制。该机制的核心在于改造两个关键部分:一是裂纹密度函数,通过引入各向异性张量来定义不同方向上形成裂纹微结构的能量成本;二是临界能量释放率(断裂

weixin_31421613的博客 298

Android NestedScrollView嵌套Listview显示不全问题解决

问题描述: 在开发的过程当中,由于手机屏幕的大小的限制,经常需要使用滑动的方式来显示更多的内容。在最近的工作中,遇见一个需求,需要将ListView嵌套到NestedScrollView中显示 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView xmlns:an...

现状很好 2477

DeerFlow 系列教程 第三篇 | 核心技术深度剖析:Skills、Memory 与 Context Engineering

摘要化是 Context Engineering 中最关键的组件——它直接决定了长对话的可用性。Skills 技能系统通过渐进式加载的三层模型,在保持系统提示词轻量的同时,支持无限数量的技能扩展。从发现到执行的 10 个生命周期阶段,配合 AI 驱动的安全扫描和多层缓存,构成了一个生产级的技能管理框架。Memory 长期记忆系统通过文件系统持久化、LLM 驱动的信息提取和防抖动异步更新,实现了跨会话的认知持久化。六类事实分类体系和修正信号检测机制,让 Agent 能够从交互中持续学习和改进。

weixin_43674738的博客 280

《Android那些事》——ScrollView嵌套ListView只显示一行的问题的解决方法

在实际开发过程中,经常会碰到ScrollView中嵌套ListView的情景 可是如果直接使用ScrollView嵌套ListView的话,我们会发现,ListView只能显示一行 对于这个问题网上有很多解决方案, 1.手动设置ListView的高度,但ListView中的数据是可变的,高度要自己测量 2.用一个ListView代替ScrollView中的所有内容,将这些内容分条当做ite

皮蛋瘦肉没有肉 541

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

到哈哈哈吧

public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) {

u012190744的博客 390

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android ScrollView嵌套ListView

在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。 在这里我将会从使用ScrollView嵌套ListView结构的原因、这个结构碰到的问题、几种解决方案和优缺点比较,这4个方面来为大家阐述、分析、总结。 实际上不光是ListView,其他继承自AbsListView的类也适用,包括Expandab

u010152805的专栏 2131

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【Android Studio】Scrollview嵌套ListView造成的ListView只显示一个item

scrollview嵌套listView,造成ListView只显示一条的问题 尝试方法 如果将listView的高度设置为固定高度之后,条目虽然可以显示更多,但条目的数量是不定的,listview的高度也时随之动态变化的,所以不能写死。 问题解决 遍历各个子条目的高度,进行相加,求得listview的总高度,然后进行设置。 举例代码 在我自定义的Adapter中加入setListViewHeightBasedOnChildren这个函数,然后在setAdapter之后调用此方法即可。 public cla

qq_40313347的博客 843

解决ScrollView嵌套ListView只显示一行的问题

前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它

Androidog 2862

NestedScrollView嵌套ListView时只显示一行的解决方法

在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动; 如果要实现嵌套滑动,则需要添加NestedScrollView,但是结果发现listview只显示一行数据 <android.support.v4.widget.NestedScrollView android:layout_width=...

weixin_34367845的博客 442

Android开发ScrollView嵌套ListView只显示一行出现的原因以及解决办法

首先看ScrollView中的onMeasure()方法,之所以首先找onMeasure()方法是因为肯定是测量出现了问题,在onMeasure()方法种首先调用了super.onMeasure()方法,点进去之后可以看到在夫布局的onMeasure方法种调用了 measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureS...

yaoyaoyao_123的博客 563

ScrollView中嵌套ListView只显示一行的问题

首先要明白为什么要这样做。     ScrollView可以滚动,Listview也可以滚动,那么为什么要在ScrollViewh中嵌套ListView呢? 大家仔细观察QQ界面的布局就会发现,红色框中的内容用LIst View做非常简单;但是整个黑色框中整体又是可以滑动的。这样就免不了在Scroll View中嵌套List View。当然你也可以不用List View,直接把红色框中的内容一

小小本科生 877

关于ScrollView嵌套ListView或GridView只显示一行的问题

第一种方法在 ScrollView 里添加 这个属性android:fillViewport="true"第二种方法重写GridView或ListView的 onMeasure 方法@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpe

知言而易行 356

ScrollView中的ListView只显示一条数据的解决方法

在ScrollView中嵌套ListView,会出现ListView只显示一条数据的现象,解决方法有两种,如下: 1. 在Activity中list view.setAdapter以后执行如下方法 public class MainActivity extends Activity { private ListView listView; @Override

菜鸟码农升职记 1898

android scrollview listview的嵌套问题

android scrollview listview的嵌套问题

xs_meteor的专栏 1001

解决ScrollView 中的listView只显示一行的问题:

ScrollView中有listView,listView只显示一行的bug的解决方法

aqiusen的专栏 1019

android - ScrollView嵌套ListView,ListView自动聚焦到第一个,和只显示一个

ScrollView嵌套ListView,解决listView只显示第一个item,并解决启动自动显示ListView第一项问题,1.listView只显示一项;2.自动聚焦到listview第一个

Beluga_白鲸 1225
上一篇: 231.解决android:background背景图片被拉伸问题
下一篇: 客户端TCP和服务端的交互,分别向对方传输数据
augfun
博客等级 码龄10年 311粉丝 662原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值