首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    listview加载性能优化之view的复用

    一般我们都会给listview set一个adapter ,然后adapter里面初始化的方法就是 getview(),这个方法 简单说是这个意思,就是 你的listview有多少行,或者说count值是多少...,他就会走多少次getview().所以 优化listview的加载速度就要让convertView匹配列表类型,并最大程度上的重新使用convertView。...getview的加载方法一般有以下三种种方式: 最慢的加载方式是每一次都重新定义一个View载入布局,再加载数据 public View getView(int position, View convertView...); return item; } 正确的加载方式是当convertView不为空的时候直接重新使用convertView从而减少了很多不必要的View的创建,然后加载数据 public View getView...tag设置为ViewHolder,不为空时重新使用即可 public class ViewHolder { TextView txt; ImageView icon; } public View getView

    36130

    Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)

    这个方法的原理是利用观察者模式对我们的数据源进行监听,当我们的数据源发生变化的时候,会调用Adapter的getView()方法进行整个界面的刷新。...这样的话我们发现,getview()会调用多次,刷新了好多个不需要刷新的item,这样的话相对而言,降低了效率。但是,我们有的情况下是只需要对某个item的数据进行刷新就可以了。...()方法 这种方法是调用适配器对应的getView方法,用它里面的代码对界面进行刷新。...不可见的在滑动的时候getView会自动调用更新数据。最后要强调的一点就是关于布局优化,最好将item的高度设置为一个固定的值,这样能减少getView的调用次数。...因为一个不确定的值,ListView会频繁调用多次getView去确定其高度和渲染。

    2.5K20

    android 面试之listview

    · 1.在adapter中的getView方法中尽量少使用逻辑· 2.尽最大可能避免GC· 3.滑动的时候不加载图片· 4.将ListView的scrollingCache和animateCache设置为...false· 5.item的布局层级越烧越好· 6.使用ViewHolder1.在adapter中的getView方法中尽量少使用逻辑不要在你的getView()中写过多的逻辑代码,我们可以将这些代码放在别的地方...,例如: public View getView(int position, View convertView, ViewGroup parent) { View item = mInflater.inflate...public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView...你可以检查一下:a) item布局的层级是否太深b) getView()方法中是否有大量对象存在c) ListView的布局属性3.加载图片如果你的ListView中需要显示从网络上下载的图片的话,我们不要在

    75770

    优化使用BaseAdapter

    本节引言: 上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次...getView, 这个时候可能看出一些端倪,每次都是新inflate一个View,都要进行这个XML的解析,这样会 很浪费资源,当然,几十列或者几百列的列表并不能体现什么问题,但假如更多或者布局更加复杂...---- 1.复用ConvertView: 上面也说了,界面上有多少个Item,那么getView方法就会被调用多少次!...我们来看看上一节我们写的getView()部分的代码: @Override public View getView(int position, View convertView, ViewGroup...修改后的代码如下: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder

    57010
    领券