ListView滑不动或者显示不全和其他一些问题总结

【android-使用ListView设置列表,能够滑动和点击】 android-使用ListView设置列表,能够滑动和点击 阅读详情

从eclipse转到android studio的时候新接触一个ConstraintLayout,在使用的过程发现ListView嵌套在ConstraintLayout里面老是出现滑不动或者显示不全的问题,后面怎么修改都有问题,因为要赶项目,索性就不用它,换成了LinearLayout.这次项目告一段落了,就做个调试,小总结。

以前在使用ListView的时候发生滑不动或者显示不全的时候一般就是网上的两种解决方法

 /**
     * 动态设置ListView的高度
     * @param listView
     */
    public static void setListViewHeightBasedOnChildren(ListView listView) {
        if(listView == null) return;
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }
        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++)
        {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
//	    ((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
        listView.setLayoutParams(params);
    }

和重定义一个MyListView

/**
 * @version 创建时间:2017-11-16 下午4:35:55
 * 类说明 
 */
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) {
	        //重新设置高度
	        heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
	        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
	    }
}

直接使用ConstraintLayout嵌套Listview会出现最后一个item显示不全的情况,像下面这样,并且如果listview的下面还有其他布局,也不能看到

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="listView测试"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tv_title">

    </ListView>

    <Button
        android:id="@+id/btn_test"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="测试看listview下面还有布局的情况"
        app:layout_constraintTop_toBottomOf="@id/listview" />

    <TextView
        android:id="@+id/tv_test2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button下面的测试"
        app:layout_constraintTop_toBottomOf="@id/btn_test" />


</android.support.constraint.ConstraintLayout>

如果只用setListViewHeightBasedOnChildren方法只能滑动一点点,不能完全显示,如果只用MyListView或者同时用两种方法则完全不能滑动了。

最后测试的结果发现,最好的解决办法就是在ConstraintLayout的外层嵌套一个ScrollView并且同时采用MyListView才能同时解决所有问题,像下面这样

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="listView测试"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.test.one.myapplication.MyListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tv_title">

    </com.test.one.myapplication.MyListView>

    <Button
        android:id="@+id/btn_test"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="测试看listview下面还有布局的情况"
        app:layout_constraintTop_toBottomOf="@id/listview" />

    <TextView
        android:id="@+id/tv_test2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button下面的测试"
        app:layout_constraintTop_toBottomOf="@id/btn_test" />

    </android.support.constraint.ConstraintLayout>
</ScrollView>

如果只用ScrollView+ListView则会出现listview只显示一个item的情况,如果用ScrollView+ListView+setListViewHeightBasedOnChildren方法会出现listview的最后一个item显示不全的情况,ScrollView+MyListView+setListViewHeightBasedOnChildren方法也可以正常显示,但是,既然ScrollView+MyListView已经可以解决问题,那就没必要再加setListViewHeightBasedOnChildren方法了。而且这个方法可能也有什么问题,才会导致有时出现最后一个item显示不全的情况,具体的由于本人技术不精,也就没去探索了,希望懂的大神留言指教一下,在这里只是跟大家分享总结一下而已。后也发现把ConstraintLayout换成linelayout也是有类似的问题的,所以也是类似的解决办法就行了。

 

ListView嵌套ListView,TextView有多行文本显示不全不问题 这是在网上找到的相关的解决方法,记录下来,方便以后查看。 关于ListView嵌套ListView,在网上找到的解决方法是调用自定义的方法动态计算listview的高度: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listVie 阅读详情

相关推荐

工具篇——ListViewForScrollView(解决ScrollView嵌套ListView,ListView显示不全的问题)

写代码的四点: 1.明确需求。要做什么? 2.分析思路。要怎么做?(1,2,3……) 3.确定步骤。每一个思路要用到哪些语句、方法和对象。 4.代码实现。用具体的语言代码将思路实现出来。学习新技术的四点: 1.该技术是什么? 2.该技术有什么特点?(使用需注意的方面) 3.该技术怎么使用?(写Demo) 4.该技术什么时候用?(在Pr...

一个灵活的胖子MrWang 2140

解决ListView显示不全、滑动冲突问题

在开发中,ListView是使用得最多的控件,有时候会遇到ListView因为各种原因引起的数据显示不全,例如,嵌套了ScrollView等。这个解决的办法很多,这里记录一下我自己用过的方法,本人亲测有效。 第一种: /** * 设置listview高度的方法 * @param listView */ public void setListViewHeight(ListView l

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 7981

WPF ListView显示不全

有时我们会遇到ListView显示不全的情况,这时我们可以重写ListView的Measure。 因为我是继承控件,直接在控件里面: protected override Size MeasureOverride(Size constraint) { //这里可以自己加个属性判断是否需要重新计算,里面的宽高也自己根据实际进行调整,类似我加了子项间隔这些......

踩着28大杠的芒果 1558

android列表显示不全,ScrollView中ListView显示不全解决方法

自定义一个类继承自ListView,通过重写其onMeasure方法,达到对ScrollView适配的效果。下面是继承了ListView的自定义类:import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;public class ListViewForScrollV...

weixin_33223159的博客 695

详解嵌套ListView、ScrollView布局显示不全的问题

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

Android小酌 1万+

数理金融学笔记 Chap2 二叉树模型Binomial

2 二叉树模型与期权定价 Binomial Model and Option Pricing 文章目录2 二叉树模型与期权定价 Binomial Model and Option Pricing单期二叉树模型 One-step Binomial Model风险与无风险资产单期二叉树模型与无套利条件无套利定价 No Arbitrage Pricing风险中性定价 Risk Neutral PricingDelta套期保值 Delta Hedging两期二叉树模型 Two-Step Binomial Model

weixin_66831131的博客 2387

android listview 滑动条显示_第七十三回:Android中UI控件之ListView基础

各位看官们,大家好,上一回中咱们说的是Android中UI控件之总结的例子,这一回咱们说的例子是UI控件之ListView。闲话休提,言归正转。让我们一起Talk Android吧!看官们,我们在前面介绍了常用的控件,不过他们都是单一的控件,本章回中我们将介绍一种常用的复合控件,说它是复合控件的原因在于,它可以把其它的控件包含进来和自己一起使用。那么到底是什么控件呢?它就是ListView控件。L...

weixin_39575648的博客 138

Vivado IP核调参大师:高效配置RS编码器的避坑指南

本文深入解析Vivado中RS编码器IP核的高效配置方法,涵盖符号宽度选择、码长优化和AXI4-Stream接口控制等关键参数。重点指导如何避开常见陷阱,实现FPGA设计中的资源优化与性能平衡,提升RS编码在通信系统中的可靠性。

metaverse5vr的博客 221

android listView多层嵌套listView显示不全问题

最近在做项目,需要用到listVIew多层嵌套listVIew的需求,先发现已下两个处理办法比较好用 第一种: public class ListViewNesting extends ListView { public ListViewNesting(Context context) { super(context); } public ListViewNesting(Con

贝贝蓝玉儿 2963

从踩坑到填平:我在RHEL7上给Tesla A100装驱动的完整记录(含Fabric Manager配置)

本文详细记录了在RHEL7系统上为Tesla A100安装Nvidia驱动的完整过程,包括Fabric Manager配置的关键步骤。通过分析A100架构的特殊性,提供了从驱动安装到服务配置的详细指南,并分享了常见问题的排查方法和性能调优技巧,帮助用户高效部署高性能GPU计算环境。

weixin_29291863的博客 283

脑影像分析软件推荐 | JuSpace

JuSpace是一种允许基于 MRI 测量与核成像衍生估计的跨模态关联的工具包,它涵盖各种神经递质系统,包括多巴胺能、血清素能、去甲肾上腺素能和 GABA(γ-氨基丁酸) 神经传递。JuSpace 由一组 Matlab 功能以及涵盖各种受体系统的 PET 受体图谱组成。

NHKJ_ZF的博客 1708

【Android】ScrollView 嵌套 ListView 显示不全以及最后一个item显示不全的问题

1. ListView 数据只显示一条 ScrollView 里直接嵌套 ListView 时,数据只能显示一条,通常会重写 ListView 的 onMeasure() 方法,也可以重新计算高度。 1.1 ListView 中的 item 高度固定 1.1.1 继承 ListView 重写 onMeasure() 方法 @Override protected void onMeasure(int...

DawnYu 2137

企业级AI平台架构设计:AI应用架构师的未来趋势

企业级AI平台是AI从“实验室”走向“生产线”的关键,而AI应用架构师就是这条“生产线”的总设计师。未来,随着生成式AI、边缘计算、自治式AI的发展,架构师的角色将越来越重要——他们不仅要构建技术平台,还要连接技术与业务,让AI真正创造价值。“不要做‘只会调模型的工程师’,要做‘能解决业务问题的架构师’。因为,真正有价值的AI,从来不是“最先进的模型”,而是“能落地、能复用、能创造业务价值的平台”。愿你在企业AI转型的浪潮中,成为那个“搭建桥梁的人”——连接技术与业务,连接现在与未来。

小程序开发 973

android解决fragment嵌套ListView显示不全问题

android解决fragment嵌套ListView显示不全问题 最近在做安卓的类似淘宝的网上商城APP,用的安卓自带的底部导航栏,app制作中想必各位同行都挺熟悉ListView。 小白可以看看这篇大神的文章 android应用开发全程实录-你有多熟悉listview? 感觉还是很不错的,里面代码基本拿上就可以移植。 好了 进入正题 关于标题的问题,其实很简单,有个笨办法就是看你的底部导航栏有多高,然后在fragment布局文件里嵌套的ListView中设置*android:layout_margin

coldFeeler的博客 2954

符合DO-178C和DO-331的机载软件研制体系

DO-178C的核心要求软件开发生命周期:DO-178C定义了软件开发的生命周期过程,包括需求获取、设计、实现、验证和确认等。它为机载软件开发提供了一套系统化的指导,确保在开发过程中考虑安全性和可靠性。安全等级(DAL):根据系统的重要性,DO-178C将软件划分为不同的开发保障等级(DAL A到E),DAL A的要求最为严格,适用于关键安全功能,而DAL E的要求较低,适用于非关键功能。DO-178C在非基于模型软件开发中的应用。

qq_41854911的博客 980

银河麒麟V10等保加固清单:安全基线配置一篇搞定(附逐项检查表)

通过限制使用SSH直接以root身份登录,禁用公钥登录的方式加强SSH服务的安全性。更改SSH默认端口可在一定程度上防止被黑客使用大批量扫描方式攻击。通过修改SSH的配置文件限制可以使用SSH服务远程管理的主机。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 817

ScrollView嵌套listView和Viewpager后的显示不全解决

由于项目要求,需要在Viewpager中有一个是片段是ScrollView,而scrollView中需要嵌套另外的ViewPager跟其他如listView的视图,这里先解决下scrollView中嵌套ViewPager与listView后显示不全的问题。 xml布局文件: 自定义listView,重写他的onMeasure方法:解决listView显示不全 自定义Vie

YE1208030123的博客 4716

华为OD机试 - 魔法收积木 - 二进制(Java 新系统 200分)

华为OD机试 新系统 题库疯狂收录中,刷题。

学Java,找哪吒 443

Android ScrollView嵌套ListView显示不全问题

Android ScrollView嵌套ListView显示不全问题 未嵌套ScrollView的ListView显示正常显示全 一旦嵌套了ScrollView 只显示了一行item的高度,显示不全 通过查看源码发现

Song_Tutu的博客 719

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

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

ListView嵌套GridView显示不全解决方法

其实这个ListView上一共需要显示的是6张图片,也就是说还有3张图片需要在下一行显示的,结果GridView没有显示完全,这个问题很奇怪,但是已经找到解决的方案,就是重写一个GridView,做一个自定义的GridView,然后重写GridView的onMeasure(int widthMeasureSpec, int heightMeasureSpec)的方法,将GridView重新测量,并且指定GridView的新的高度。

Vincent的专栏 9626

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

现状很好 2477

C# Winform 关于ListView显示不全问题

在做窗体的时候,listview里 的数据总是显示不全,客户需要吗,就一定要用listview,然后我就试了一下,但是一直出现这个显示不全的问题,如下; 只显示了第列的值排列还不是符合预期,然后找了半天,代码也没什么毛病 listView1.Columns.Add("studentId"); listView1.Columns.Add("firstName"); listView1.Columns.Add("lastName"); l

weixin_44546342的博客 4735

Android_ScrollView中嵌套ListView显示不全的解决方法

tips:本博客Github上的Demo链接:https://github.com/chengbiao1314/android_ListViewInListView.git ScrollView、ListView、GridView之间的相互嵌套使用的时候,我们会发现滑动的是最外边的控件,而最里面的控件常常显示不全,面对显示不全的问题该怎么处理?大家在显示不全的时候,如果尝试给内部的L

Ricky‘s Home 1852

ScrollView嵌套listview时只显示一行,无法滑动,listview底部显示不全等问题

1.listview只显示一行 在ScrollView中嵌套ListView时,系统可能无法正确的计算ListView的大小,所以我们需要根据当前的ListView的列表项计算列表的尺寸。实现代码如下: public static void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的...

u013166619的博客 421

Listview中嵌套Listview或者ScrollView中嵌套Listview【显示不完整和滑动冲突】

问题描述 解决方法 ScrollView布局中嵌套Listview显示不正常 1自定义一个Listview继承自Listview 2重新计算Listview的高度 在Listview中嵌套Listview的滑动冲突 效果 问题描述: 一个滑动控件或布局里面,添加另外一个可以滑动的控件; 工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌套Listview的滑动冲突的问题。 解决方法: 1.ScrollView布局中嵌套Li

Venus 的博客 866
上一篇: Glide首次加载不出图片
下一篇: android studio大量代码报过时警告解决办法
么可
博客等级 码龄11年 6粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值