栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android自定义Listview

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android自定义Listview

getView()
:如规范中所述,getView方法将数据显示在指定位置。因此,当您设置适配器并滚动时,将调用listView的getView方法。

您在此处复制的方法是 EfficientAdapter 的一部分,可以优化ListView性能,并且可以使用 ViewHolder
模式进行优化。

从规格复制:仅需更多说明

position :项目在适配器的数据集中的位置(我们要查看其位置)。

convertView
:如果可能,要重用的旧视图。注意:使用前,您应检查此视图是否为非null并具有适当的类型。如果无法转换此视图以显示正确的数据,则此方法可以创建一个新视图。异构列表可以指定其视图类型的数量,以便此View始终具有正确的类型(请参见getViewTypeCount()和getItemViewType(int))。

因此,在上述方法中,当您执行以下操作时,您将 重用您的convertView。

     if (convertView == null){ .... convertView.setTag(holder);     } else {holder = (ViewHolder) convertView.getTag();       }

通过执行以下操作,您可以避免查找(findViewById),这就是 ViewHolder模式* 的好处 *

      holder.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);

parent :该视图最终将附加到的父级

已编辑

问题:getView调用了多少次,将创建多少convertView?答:让我们以ApiDemos的Efficeint适配器为例。如果您的屏幕显示10行,那么,

convertView Count :10 +1 = 11(10行显示在屏幕上,另外一行显示滚动效果)。这意味着if(convertView ==
null){…}块中的语句将仅被调用11次。

getView Count :最初的计数为10,但是当您开始滚动时,计数将继续增加。每次都调用getView来更新数据。

注意:这仅适用于所提及的getView方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430928.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号