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

来源:互联网 发布:大排畸数据怎么看 编辑:程序博客网 时间:2024/05/21 21:48

复用列表(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>



0 0
原创粉丝点击