`
前进的路中没有月亮
  • 浏览: 21026 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

iMAG中的复用列表的使用说明

阅读更多

复用列表(resue list)在爱码哥中是不同于普通列表的另外一种列表,使用复用列表是为了优化性能,在大数据的情况下(上千个item)避免因内存占用过多而导致系统崩溃。这是因为在移动应用中view(视图)是很耗费系统资源的一个对象,过多的view(几千个,view所占内存大小取决于view的面积)可能会引起内存不足而崩溃,同时一次性加载这么多view也会花费很长的时间。

对此相应的解决方案是使用reuse list,reuse list的原理是只创建一屏幕显示的view对象,当view被滚动超出屏幕之后就会被用来复用,因此始终只会占用一屏幕view的内存, 有效地解决了内存不足而引起崩溃的问题, 同时因为实际创建的view个数较少,具有很快的加载速度。

使用复用列表需要设置reuse="true",同时content里只能有一个list,不能有多个list或其他控件

 

<content>
    <list id="resuelist" reuse="true">
        <item accessory="indicator">
            <label></label>
            <label style="color:gray"></label>
        </item>
    </list>
</content>

reuse list中的item和普通list中的item有很大不同,因为reuse list的item并不是实际内容,而是UI模版,reuse list的item内容都通过Javascript脚本动态创建。关于reuse list完整的示例如下:

 

<?xml version="1.0" encoding="utf-8"?>
<imag>
    <script>
    <![CDATA[
        function initList() {
            var listJson = {items:[]};
            for (var i = 0; i < 1000; i++) {
                var itemJson = {
                    template:0,
                    onclick:'alert("item' + i + '")',
                    widgets:{
                        title:{text:'标题' + i},
                        subtitle:{text: '副标题' + i}
                    }
                }
                listJson.items.push(itemJson);
            }
            $('resuelist').update(listJson);
        }
         
        $page.onload = function() {
            initList();
        }
    ]]>   
    </script>
    <page>
        <title>
            <center>
                <label>reuse list</label>
            </center>
        </title>
        <content>
            <list id="resuelist" reuse="true">
                <item accessory="indicator">
                    <label reusekey="title"></label>
                    <label style="color:gray" reusekey="subtitle"></label>
                </item>
            </list>
        </content>
    </page>
</imag>




分享到:
评论

相关推荐

    LoadRunner使用及注意

    以下是对 LoadRunner 的使用步骤和注意事项的详细说明。 ### 1. 创建脚本 #### 1.1 录制脚本 录制脚本是LoadRunner测试的基础,它通过模拟用户操作来创建虚拟用户脚本。 **1.1.1 录制脚本过程:** 1. 选择合适...

    备考python选择题综合练习321-400道

    16. 格式化字符串中的格式说明符可以用来控制数字的输出格式,包括小数点后的位数。 17. Python中,ord函数可以获取字符的ASCII值,而chr函数可以将ASCII值转换回字符。 18. Python字符串的遍历以及输出可以结合...

    Matlab中SIMULINK的模块库以及比较常用的模块.docx

    以下是基于标题和描述中提到的模块库分类及其常用模块的详细说明: 1. **连续模块(Continuous)**:这类模块用于处理连续时间系统的模型。例如: - **Integrator**:将输入信号进行积分,常用于模拟物理系统中的...

    mtlab简答题 (3).pdf

    - `real(x)`、`imag(x)`、`abs(x)` 和 `conj(x)` 分别提取复数的实部、虚部、模和共轭。 15. **逻辑运算**: - `(5)*120` 结果为0。 - `(5&gt;2)*(6~=5)` 结果为1。 16. **绘图函数**: - `polar` 绘制极坐标图。...

    一个月挑战C++电子书.pdf

    对C++中引用的补充说明(实例) - **引用的进一步解释**: - 引用必须在声明时初始化。 - 引用声明后不能更改其引用的对象。 - **示例**: ```cpp int x = 10; int &y = x; y = 20; ``` ##### 14. 新手入门:C/...

Global site tag (gtag.js) - Google Analytics