前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 学习笔记--android——listview总结

Android 学习笔记--android——listview总结

作者头像
程序员小何SS
发布于 2021-11-27 08:23:12
发布于 2021-11-27 08:23:12
45200
代码可运行
举报
文章被收录于专栏:Android理论Android理论
运行总次数:0
代码可运行

总结listview: 1、创建-->高度match 2、创建-->行布局 3、找到listview控件 4、初始化数据 5、创建适配器对象 baseAdapter getview :决定了显示的样式以及内容 查找当前布局对象里面的控件 行布局对象.findviewById() getCount :决定listview的显示行数 6、设置适配器

listview优化:

1、用完全消失的布局对象去替代即将出现的那个布局对象 复用行布局对象 convertView

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    View inflate = null;
    // convertView用来保存完全消失的那个布局对象
    if(convertView==null){
        // 把布局xml文件转换成布局对象
        // 得到布局转换器
        LayoutInflater layoutInflater = getLayoutInflater();
        // 通过布局转换器把xml文件转换成布局对象
        inflate = layoutInflater.inflate(R.layout.ssa, null);
    }else{
        //用完全消失的布局对象去替代即将出现的那个布局对象
        inflate = convertView;    
    }

2、减少控件的查找次数 //创建一个类,类里面的属性就是我们所需的控件 //声明一个ViewHolder对象 ViewHolder holder = null;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        if (convertView == null)
        {   
            holder = new ViewHolder();
            // 把布局xml文件转换成布局对象
            // 得到布局转换器
            LayoutInflater layoutInflater = getLayoutInflater();
            // 通过布局转换器把xml文件转换成布局对象
            inflate = layoutInflater.inflate(R.layout.ssa, null);
            //找到控件对象,然后保存到holder对象里面去
            holder.textView1 = (TextView) inflate.findViewById(R.id.textView1);
            holder.textView2 = (TextView) inflate.findViewById(R.id.textView2);
            //把holder放到inflate包里面去
            inflate.setTag(holder);
        }
        else
        {   
            // 用完全消失的布局对象去替代即将出现的那个布局对象
            inflate = convertView;  
            //从inflate对象的包里面得到holder
            holder = (ViewHolder) inflate.getTag();
        }

注·:文章来自51CTO博客作者Samuel_humg

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
android学习笔记----ListView和各种适配器简介
将数据库显示到ListView的小Demo源码地址:https://github.com/liuchenyang0515/ListView_DataBase
砖业洋__
2023/05/06
2.4K0
android学习笔记----ListView和各种适配器简介
Android开发-Listview中显示不同的视图布局
在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局。单一类型的ListView很简单,下面着重介绍一下ListView包含多种类型视图布局的情形。
他叫自己MR.张
2019/07/01
2.7K0
Android适配器作用
Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。
全栈程序员站长
2022/08/11
1.1K0
Android适配器作用
Carson带你学Android:全面解析列表ListView与AdapterView
2. 在MainActivity上定义一个链表,将所要展示的数据以存放在里面 3. 构造ArrayAdapter对象,设置适配器 4. 将LsitView绑定到ArrayAdapter上 如下图:
Carson.Ho
2022/03/24
1.2K0
Carson带你学Android:全面解析列表ListView与AdapterView
[android] 手机卫士黑名单功能(ListView优化)
上一篇记录了使用ListView展示出来了100条数据,当慢慢拖动的时候,不会有问题,但是当拖动很快的时候,应用会报anr错误
唯一Chat
2019/09/10
5980
[android] 手机卫士黑名单功能(ListView优化)
Android开发:ListView、AdapterView、RecyclerView全面解析
AdapterView本身是一个抽象类,AdapterView及其子类的继承关系如下图:
Carson.Ho
2019/02/22
3.7K0
ListView优化和列表首尾使用
前面连续几期都在学习ListView的各种使用方法,如果细心的同学可能会发现其运行效率是有待提高的,那么本期就来一起学习有哪些方法技巧来优化ListView的效率。 一、使用convertView 前面讲的自定义ArrayAdapter和自定义BaseAdapter,都会重写getView()方法,虽然可以正常使用,但其实效率非常低。当列表项很多时,用户每次滚动屏幕,都会创建一批新的View对象,以填充新出现的列表项,这样势必会影响用户体验。 我们可以看到getView()方法中传入
分享达人秀
2018/02/02
1.6K0
ListView优化和列表首尾使用
android入门 — ListView的优化
  ListView的运行效率是比较低的,因为在getView()中每次都会将整个布局重新加载一遍,当ListView快速滚动的时候就会成为性能瓶颈。   调用View中的findViewById()方法获取一次控件的实例,这也是一个很耗时的操作,可以进行优化。 方法一:convertView参数 这个参数用于将之前加载好的布局进行缓存,以便之后进行重用。 @Override public View getView(int position, View convertView, View
Mister24
2018/05/14
9562
Android ListView 的简单用法
ListView 用来显示一个可以垂直滚动的列表,其中列表的每一项由其相关联的适配器提供,适配器起到一个中间人的作用,即连接列表数据和ListView布局
全栈程序员站长
2022/09/15
5030
Android ListView 的简单用法
Adapter与ListView的简单应用(下)Android应用界面开发
1.继续分析Adapter的常用类 上一篇文章使用了ArrayAdapte制作了一个只由简单的文字组成的ListView,那ArrayAdapter是不是只有简单显示一行文字的功能呢?答案是否定的。
爱因斯坦福
2018/09/10
6900
android 面试之listview
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。· 1.在adapter中的getView方法中尽量少使用逻辑· 2.尽最大可能避免GC· 3.滑动的时候不加载图片· 4.将ListView的scrollingCache和animateCache设置为false· 5.item的布局层级越烧越好· 6.使用ViewHolder1.在adapter中的getView方法中尽量少使用逻辑不要
xiangzhihong
2018/02/02
7880
从0系统学Android--3.5 最常用和最难用的控件---ListView
ListView 是我们在开发中最常使用的控件之一。由于手机屏幕空间比较有限,能够一次性在屏幕上显示的内容不多,ListView 允许用户可以通过手指上下滑动,可以呈现更多的数据。
开发者
2019/12/26
6630
从0系统学Android--3.5 最常用和最难用的控件---ListView
ListView使用技巧-更新中
虽然在Android5.X中,RecyclerView在很多地方组件取代了ListView,但是ListView的使用依然是分广泛。
小小工匠
2021/08/16
1.1K0
笔记42 | Android加载器Adapter的深入学习篇(一)
地址 CSDN:http://blog.csdn.net/xiangyong_1521/article/details/78653538简书:http://www.jianshu.com/p/7bfd1eeea5cb ---- 目录 以ListView为例的工作原理 ViewHolder的作用 getItemViewType和getViewTypeCount 实现 实现步骤 ---- 1.ListView针对List中每个item, adapter都会调用一个getView的方法获得布局视图 2.我们一般
项勇
2018/06/19
6430
Kotlin入门(22)适配器的简单优化
为实现各种排列组合类的视图(包括但不限于Spinner、ListView、GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter、简单适配器SimpleAdapter、基本适配器BaseAdapter、翻页适配器PagerAdapter。适配器的种类虽多,却个个都不好用,以数组适配器为例,它与Spinner配合实现下拉框效果,其实现代码纷复繁杂,一直为人所诟病。故而在下拉框一小节之中,干脆把ArrayAdapter连同Spinner一股脑都摒弃了,取而代之的是Kotlin扩展函数selector。 到了列表视图ListView这里,与之搭档的一般是基本适配器BaseAdapter,这个BaseAdapter更不简单,基于它的列表适配器得重写好几个方法,还有那个想让初学者撞墙的ViewHolder。总之,每当要实现类似新闻列表、商品列表之类的页面,一想到这个难缠的BaseAdapter,心里便发怵。譬如下图所示的六大行星的说明列表,左侧是图标,右边为文字说明,很普通的一个页面。
aqi00
2019/01/18
1.4K0
干货一:通过自定义PopupWindow实现QQ菜单选项功能
实现方式有很多种,在这里我们来演示下如何通过自定义PopupWindow的方式一步一步的实现如上效果。
小小工匠
2021/08/16
8530
Android最常用的控件ListView(详解)
在Android开发中,ListView是一个比较常用的控件。它以列表的形式 展示具体数据内容,并且能够根据数据的长度自适应屏幕显示。
全栈程序员站长
2022/09/15
4.9K0
Android最常用的控件ListView(详解)
Android的ListView和RecyclerView的基本用法
在Android 5.0 版本之前,为了方便的显示多行数据,形如QQ聊天信息主界面,最常用的选择无非是ListView控件,但是ListView控件本身就有很大的局限性和效率问题(相对于RecyclerView控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。在Android5.0版本之后,Android官方推出了一个新的控件:RecyclerView ,完全解耦的设计使得RecyclerView比起ListView灵活了太多,应用的场合也非常广泛。那么,就来看一下ListView和RecyclerView的用法和不同之处在哪:
指点
2019/01/18
1.3K0
Android的ListView和RecyclerView的基本用法
优化使用BaseAdapter
 convertView能够被复用的的最根本原因是:ListView的每一行的View对象结构都是类似的,就拿我的前一篇关于ListView的文章为例,每一行布局的结构都是如下图所示:
Fisherman渔夫
2020/02/17
5940
笔记41 | Android加载器Adapter的几个练习
合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》 地址 简书:http://www.jianshu.com/p/bec0fdbb54ef csdn:http://blog.csdn.net/xiangyong_1521/article/details/78644437 ---- 目录 概念 ArrayAdapter SimpleAdapter BaseAdapter ---- 概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的V
项勇
2018/06/19
5200
相关推荐
android学习笔记----ListView和各种适配器简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档