sencha touch list

1 默认每一项的高度会自动适应其内容。

2 当每一个 item 的高度都相同且不变时, 设置 itemHeight 为固定值 和 variableHeights 为 false,

可以优化性能,因为不用去动态计算每一项的高度。

3 infinite 属性对底层做了优化,大体是 infinite 为 false 时,每一个 item 都对应一个 dom 元素,当 list 有很多项时肯定影响性能。 当 infinite 为 true 时,假设一屏能显示 10 条,底层只有 10 个 dom 元素, 当滚动时只循环这 10 个 dom,所以性能与 item 的个数没有关系。我测试了一下,当数据很多时,设置 infinite 为 ture 确实滚动流畅了很多。

一个老外说当数据较少时(比如 500 条以内),用不用 infinite 滚动都差不多, 当数据很多时 infinite 能起到优化作用。

至于底层实现到底有什么不同,有兴趣的同学可以去研究一下 sencha 的源码。

4 发现 list 设置了 infinite 为 ture 后, 内容很长时布局就乱掉了。 原来为了优化性能  variableHeights 被设置成了 false,每一项的高度都设置成了默认高度。把 variableHeights 设置成 true 就可以自适应了。

还有问题: 设置了infinite : true  后,客户报了一个 bug 说 在 IOS 中快速滑动界面会突然卡死。经我测试确实有这个 bug (当list item 有多行内容, 确切的说是每行高度超过 list item 的默认高度时), 而设置 infinite : false 就没有问题。

查了一下这是 sencha 2.2 的一个 bug,  经测试在 sencha 2.3 中修正了这个 bug.

老外也有讨论这个 bug ,更多请参考

2.2.0 Infinite List Freezing

 

sencha touch list infinite 属性的更多相关文章

  1. sencha touch 入门系列 (五)sencha touch运行及代码解析(上)

    由于最近项目比较忙,加之还要转战原生开发,所以很久没更新了,今天我们接着上一次的内容往下讲: 首先我们打开index.html,这是我们整个程序的访问入口,也是整个项目的引入地: <!DOCTY ...

  2. sencha touch的开源插件和例子

    写了好久的sencha touch,没想到换工作竟然一年多没有搞了.因为项目的缘故收集了好多的组件,由于懒惰,没有整理,现在想想有点后悔了,再加上如果就这样丢弃,感觉有些遗憾,今天整理了一下放在git ...

  3. sencha touch打包成安装程序

    为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...

  4. sencha touch 入门系列 (二)sencha touch 开发准备

    这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题.接下来我们就开始我们的sencha touch开 ...

  5. 使用 crosswalk-cordova 打包sencha touch 项目,再也不用担心安卓兼容问题!

    国内的安卓手机品牌众多,安卓操作系统碎片化也很严重,我们使用sencha touch 开发的应用不可避免的出现了各种无解的兼容性问题. 有时候我就在想,有没有既能支持cordova,又能让我们把Chr ...

  6. sencha touch api 使用指南

    本文主要讲解如何使用sencha touch的api以及如何查看api中官方示例源码 前期准备 1.sdk 下载地址:http://www.sencha.com/products/touch/down ...

  7. Sencha Touch 手机移动开发框架 HTML5 项目压缩方案;

    Sencha Touch框架生成基本项目目录结构 Index.html/ App.js App.json /touch[sdk]/ /Sencha-touch.js /src Resources/ A ...

  8. sencha touch 开发准备

    这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题.接下来我们就开始我们的sencha touch开 ...

  9. Android环境配置Sencha Touch

    转自http://www.phonegap100.com/portal.php?mod=view&aid=19 作为你开发的一部分,为安卓设备开发的 Sencha Touch框架应该在安卓虚拟 ...

随机推荐

  1. C#中使用多线程访问Winform中控件的若干问题

    我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍. 首先来看传统方法: public partial  ...

  2. SVN客户端--TortoiseSVN使用说明【转】

    TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ...

  3. Can't place multiple pins assigned to pin location Pin_F16

    Can't place multiple pins assigned to pin location Pin_F16 在我们芯航线FPGA开发板上,使用了一片128Mbit的SDRAM存储器.当大家在 ...

  4. 《T-SQL查询》- SQL逻辑处理

    下面列出SQL查询语句的一般形式,以及各个子句被逻辑处理的顺序步骤: (8) SELECT (9) DISTINCT (11) <TOP_specification> <select ...

  5. mysql按照天或小时group分组统计

    select DATE_FORMAT( deteline, "%Y-%m-%d %H" ) , COUNT( * ) FROM test GROUP BY DATE_FORMAT( ...

  6. GBK,UTF-8,和ISO8859-1之间的编码与解码

    Unicode.UTF-8 和 ISO8859-1到底有什么区别 将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicod ...

  7. CentOS关机命令

    Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 1 ...

  8. webservice 创建及调用

    1.创建一个空白项目 2.在此项目上新建项--添加一个web服务 (.asmx) 这样就创建好了一个webservice --------------------------------------- ...

  9. Android应用-底部导航栏的使用

    目录 1. 设计底部导航栏页面 1.1. 创建必须的文件夹 1.2. 设计主页面 2. 设计逻辑函数 3. 项目展示 底部导航栏是基于Bottom Navigation Bar 插件使用的 这个插件包 ...

  10. 语法解析 rs.next()

    ResultSet.next()方法将指针从当前位置下移一行.ResultSet 指针最初位于第一行之前:第一次调用 next 方法使第一行成为当前行:第二次调用使第二行成为当前行,依此类推. 如果新 ...