iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何优化Android中的ListView
  • 217
分享到

如何优化Android中的ListView

androidlistviewroi 2023-05-31 11:05:07 217人浏览 泡泡鱼
摘要

如何优化Android中的ListView?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ListView的优化对于ListView来说,应该算是布局中几种最常用的组件之一了,使

如何优化Android中的ListView?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

ListView的优化

对于ListView来说,应该算是布局中几种最常用的组件之一了,使用也十分方便,下面个大家介绍一下两种常见的优化方式.

1.条目复用优化

  1. 其实listview的工作原理就是,listview在请求屏幕可见的item数时,convertView在getVIew中是null 的.
  2. 但是当屏幕向下滑动的时候(比如该屏幕尺寸可显示7条teim),在item1被隐藏,此时出现item8时,covertView的值就不为null 了,因为item1去填充它.
  3. 而如果不做复用处理的话,item8 则会继续去findviewById, 因此其实每个item里的View控件,竟然ID都是一样的,那我们其实可以利用covertView的复用原理,来优化listview,从而避免OOM异常.

详情见下图:

总结: 通过对上图的理解,那么我们得知listview的item是可以进行复用的,通过什么来复用?Android已经帮我们定义了一个方法getView(final int position, View convertView,ViewGroup parent) 里面的convertView 就是专门来处理复用的item的,因此我们只要对他处理就可以了.

2.优化findviewbyid

系统寻找子孩子id的方式: 从左向右,跟树状模式一样.

每次寻找子孩子都消耗很多的资源,但是子孩子的id都是被创建出来的,

也就是是说他们是固定的,竟然如此那么我们就可以对他进行优化;

系统找R.id的模式见下图:

总结: 通过对上图的理解,那么我们得知findviewbyid(id) 的底层操作太耗时了,如果一个布局里面有一百多层,那么我就单单是找一个小小的'ImageView' 都会找半天.幸好在2009年的Google IO大会上,google的工程师推出了一个优化的方式 通过自定义一个viewholder类,来对view的id进行绑定,从而减少系统查找这样的耗时操作.

两种优化方案实际代码如下:

@Overridepublic View getView(final int position, View convertView,    ViewGroup parent) {  View view;  ViewHolder holder;  if (convertView != null) {    // 复用历史view对象    view = convertView;    holder = (ViewHolder) view.getTag();  } else {    // 创建新的view对象    view = View.inflate(getApplicationContext(),        R.layout.item_callsmssafe, null);    // 每次寻找子孩子消耗很多的资源cpu 内存.    // 只有当子view对象第一次被创建的时候 查询id    holder = new ViewHolder();    holder.tv_mode = (TextView) view        .findViewById(R.id.tv_black_mode);    holder.tv_phone = (TextView) view        .findViewById(R.id.tv_black_phone);    holder.iv_delete_blacknumber = (ImageView) view        .findViewById(R.id.iv_delete_blacknumber);    view.setTag(holder);}static class ViewHolder {  TextView tv_phone;  TextView tv_mode;  ImageView iv_delete_blacknumber;}

--结束END--

本文标题: 如何优化Android中的ListView

本文链接: https://www.lsjlt.com/news/225358.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何优化Android中的ListView
    如何优化Android中的ListView?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ListView的优化对于ListView来说,应该算是布局中几种最常用的组件之一了,使...
    99+
    2023-05-31
    android listview roi
  • Android ListView列表怎么优化
    这篇文章主要讲解了“Android ListView列表怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android ListView列表怎么优化”吧!优化点1:...
    99+
    2023-06-30
  • Android ListView列表优化的方法详解
    1. 使用ViewHolder模式:该模式可以减少findViewById的调用次数。在getView()方法中,通过ViewHol...
    99+
    2023-08-14
    Android
  • Android之ListView优化技巧有哪些
    以下是一些优化Android中ListView的技巧:1. 使用ViewHolder模式:在getView()方法中使用ViewHo...
    99+
    2023-09-25
    Android ListView
  • Android ListView列表优化的方法有哪些
    优化Android ListView列表的方法有以下几种:1. 使用ViewHolder模式:在getView()方法中使用View...
    99+
    2023-08-14
    Android ListView
  • android中的ListView
    在Android中有一个绝对称得上最常用的控件之一,几乎所有的应用都能用到它由于Android运行在手机上,手机屏幕的显示内容并不多,当我们的APP要大量显示数据时就需要用到ListView了ListView运行用户通过手指上下滑动的方式把...
    99+
    2023-06-04
  • Android中listview如何刷新数据
    在Android中,可以通过以下几种方式刷新ListView的数据:1. 使用`notifyDataSetChanged()`方法:...
    99+
    2023-08-18
    Android
  • listview的优化方式有哪些
    ListView的优化方式有以下几种:1. 使用ViewHolder模式:通过复用已经创建的View来减少内存消耗,提高列表的滚动性...
    99+
    2023-08-26
    listview
  • android的性能如何优化
    优化Android性能可以通过以下几个方面来实现:1. 减少内存占用:避免创建过多的对象,使用缓存技术来减少内存占用,及时释放不再使...
    99+
    2023-08-08
    android
  • 如何优化android布局
    如何优化android布局?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移...
    99+
    2023-06-14
  • Android项目中如何优化Bitmap的加载
    Android项目中如何优化Bitmap的加载?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一 . 高效加载 BitmapBitMapFactory 提供了四类方法: deco...
    99+
    2023-05-31
    android bitmap roi
  • 在Android应用中ListView底部的ListDivider如何去除
    今天就跟大家聊聊有关在Android应用中ListView底部的ListDivider如何去除,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,我们先来了解ListView的两个属...
    99+
    2023-05-31
    listview divider android
  • Android如何实现ListView的点击变色
    这篇文章将为大家详细讲解有关Android如何实现ListView的点击变色,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Android 实现ListView的点击变色的实例我做了一个音乐播放器,其中用L...
    99+
    2023-05-30
    android listview
  • 如何在android项目中里ListView隐藏底部View
    这篇文章将为大家详细讲解有关如何在android项目中里ListView隐藏底部View,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1。底部BottomView的内容如下,这个XML文件的...
    99+
    2023-05-31
    listview android view
  • Android如何优化启动速度
    这篇文章给大家分享的是有关Android如何优化启动速度的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。启动方式应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动、温启动与热启动冷启动(启动优化目...
    99+
    2023-06-25
  • ListView列表组件如何在Android项目中使用
    ListView列表组件如何在Android项目中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ListView是一种非常常见的一个组件,以垂直列表的形式显示列表项。而...
    99+
    2023-05-31
    android listview roi
  • 如何在Android应用中分批显示 ListView数据
    这期内容当中小编将会给大家带来有关如何在Android应用中分批显示 ListView数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android ListView数据的分批显示布局文件activit...
    99+
    2023-05-31
    android listviw roi
  • android页面卡顿如何优化
    Android页面卡顿的优化可以从以下几个方面着手:1. 减少布局层级:过多的布局层级会增加页面渲染的复杂度和时间,导致页面卡顿。可...
    99+
    2023-09-25
    android
  • Android开发如何实现ScrollView中嵌套两个ListView
    这篇文章主要介绍Android开发如何实现ScrollView中嵌套两个ListView,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:做的项目中要使用两个ListView在同一个页面上下显示,因为数据源不同...
    99+
    2023-05-30
  • ListView之性能优化的方法有哪些
    ListView的性能优化方法包括:1. 使用ViewHolder模式:通过在getView()方法中使用ViewHolder来缓存...
    99+
    2023-09-26
    ListView
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作