Listview列表组件

列表组件是根据AppCan 布局框架对数据列表进行封装的JS对象,通过配合的样式,使开发者在界面中可以快速完成列表控件的开发。

依赖

  • appcan.js
  • appcan.control.js
  • appcan.listview.js
  • appcan.control.css

JS对象

函数
appcan.listview({参数})
1. selector:   /*选择器*/,
2. type:   thinLine or thickLine /*窄行和宽行设定*/,
3. hasIcon:   true or false /*是否有图片*/,
4. hasAngle:   true or false /*是否有右侧箭头*/,
5. hasSubTitle:   true or false /*是否有子标题*/,
6. hasTouchEffect:   true or false /*是否有点击效果*/,
7. hasCheckbox:   true or false /*是否有复选按钮*/,
8. hasRadiobox:   true or false /*是否有单选按钮*/,
9. align:   "left" or "right" /*checkbox和radiobox居左还是居右*/,
10. multiLine:  1 2 or 3 /*主标题文字占用最大行数。到达行数显示不全使用…替换*/,
11. touchClass:   'sc-bg-active' or 用户自定义 /*列表条目点击效果CSS类*/,
12. hasControl:   true or false /*列表条目中是否包含switch组件。*/
13. hasGroup:   true or false /*列表条目是否以分组的形式展示。*/

示例

1. var lv = appcan.listview({
2. selector : "#listview",
3. type : "thinLine",
4. hasIcon : false,
5. hasAngle : false,
6. hasSubTitle : false,
7. hasTouchEffect:true,
8. hasCheckbox: false,
9. hasRadiobox: false,
10. align:"left",
11. multiLine : 1,
12. touchClass : 'sc-bg-active',
13. hasControl: false,
14. hasGroup: false
15. });
方法:set(data)

参数

1. data:JSON   对象数组,用于存储列表条目显示的文字图片等信息。

示例

1. lv.set([{
2. title : "中国红",
3. subTitle : '<div class="umh1 umw3 us" style="background-color:#DF3031"></div>',
4. }, {
5. title : "蜜桃粉",
6. subTitle : '<div class="umh1 umw3 us" style="background-color:#EC6897"></div>',
7. }, {
8. title : "青草绿",
9. subTitle : '<div class="umh1 umw3 us" style="background-color:#66C669"></div>',
10. }, {
11. title : "天际蓝",
12. subTitle : '<div class="umh1 umw3 us" style="background-color:#00A0E9"></div>',
13. }, {
14. title : "子夜灰",
15. subTitle : '<div class="umh1 umw3 us" style="background-color:#434343"></div>',
16. }]);
方法:add(data,dir)

参数

1. data: JSON 对象数组,用于存储列表条目显示的文字图片等信息。
2. dir: 0 or 1  用于设定数据是在列表前部添加还是后部添加。0为前部添加,1为后部添加。默认为0

示例

1. lv1.add([{
2. title : "金黄",
3. subTitle : '<div class="umh1 umw3 us" style="background-color:#FFD700"></div>'}]
4. ,1);
事件:click

列表条目备点击时调用此事件

参数

1. Obj  列表条目DOM对象
2. Data 列表条目对应数据源对象
3. subObj 列表条目点击时的子元素DOM对象例如图片

示例:

1. var lvData =
2. [{
3. title : "uexWheel",
4. describe : '轮盘菜单 ',
5. pagename : "uexWheel",
6. pageurl:"UIapi/uexWheel.html"
7. },{
8. title : "uexWheel2",
9. describe : '轮盘菜单2 ',
10. pagename : "uexWheel2",
11. pageurl:"UIapi/uexWheel2.html"
12. }];
13. lv1.set(lvData);
14. lv1.on("click",function(obj,data,subObj){
15. console.log(obj);
16. console.log(data);
17. console.log(subObj);
18. appcan.window.open(data.pagename,data.pageurl,10);
19. })
事件:checkbox:change

列表条目复选框变更时产生此事件

参数:

1. Obj   列表条目DOM对象
2. Data  列表条目对应数据源对象,其中checked属性代表选择状态

示例:

1. lv1.on("checkbox:change",function(obj,data){
2. console.log(obj);
3. console.log(data);
4. })
事件:radio:change

列表单选框变更时产生此事件

参数:

1. Obj   列表条目DOM对象
2. Data  列表条目对应数据源对象 其中checked属性代表选择状态

示例:

1. lv1.on("radio:change",function(obj,data){
2. console.log(obj);
3. console.log(data);
4. })
事件:switch:change

列表条目中的switch控件变更时产生此事件

参数:

1. Obj   列表条目DOM对象
2. Data  列表条目对应数据源对象 其中switchBtn.value代表switch状态,switchBtn.mini代表switch的样式

示例:

1. lv1.on("switch:change",function(obj,data){
2. console.log(obj);
3. console.log(data);
4. })
范例

HTML5代码:

1. <div id="listview" class="ubt sc-border sc-bg">
2. </div>

JS代码

1. 有icon:set(data)中的JSON
1. var hasSmallIcon =
2. [{
3. title : "ISIS分支宣布将一法国人斩首。该组织声称如果法国不停止打击ISIS,将杀掉人质",
4. describe:"",
5. note : "",
6. subTitle : "",
7. subDescribe : "",
8. subNote : "12:03",
9. icon : "../css/res/appcan_s.png",
10. icontitle:"",
11. "switchBtn":{
12. mini:true,
13. value:true
14. }
15. }];
16. lv1.set(hasSmallIcon);

单选列表

1. var lv = appcan.listview({
2. selector : "#listview",
3. type : "thinLine",
4. hasIcon : false,
5. hasAngle : false,
6. hasSubTitle : false,
7. multiLine : 1,
8. hasRadiobox : true,
9. align : 'left'
10. });

12. lv.set([{
13. title : "中国红",
14. subTitle : '<div class="umh1 umw3 us" style="background-color:#DF3031"></div>',
15. }, {
16. title : "蜜桃粉",
17. subTitle : '<div class="umh1 umw3 us" style="background-color:#EC6897"></div>',
18. }, {
19. title : "青草绿",
20. subTitle : '<div class="umh1 umw3 us" style="background-color:#66C669"></div>',
21. }, {
22. title : "天际蓝",
23. subTitle : '<div class="umh1 umw3 us" style="background-color:#00A0E9"></div>',
24. }, {
25. title : "子夜灰",
26. subTitle : '<div class="umh1 umw3 us" style="background-color:#434343"></div>',
27. }]);

带switch控件列表

1. var lv1 = appcan.listview({
2. selector : "#listview",
3. type : "thinLine",
4. hasIcon : false,
5. hasAngle : false,
6. hasControl:true,//包含控件
7. });
8. lv1.set([{
9. title : "Switch:false",
10. "switchBtn":{//switch控件配置
11. value:false,
12. mini:true
13. }
14. },{
15. title : "Switch:true",
16. "switchBtn":{
17. value:true,
18. mini:true
19. }
20. }
21. ]);
22. lv1.on("switch:change",function(obj,data){
23. lv1.updateItem(obj,"title","Switch:"+data.switchBtn.value);
24. })

以组的形式展示的列表

1. var lv1 = appcan.listview({
2. selector : "#listview",
3. type : "thinLine",
4. hasGroup : true,
5. hasAngle : false
6. });
7. lv1.set([{
8. title : "A",
9. groupId : "A",
10. items : [{
11. title : "上海伯母杀婴案开庭 嫌犯忏悔",
12. icon : "../css/res/appcan_s.png"
13. }, {

15. title : "百万日军投降,武器去向如何?国共并非对半分!",
16. icon : "../css/res/appcan_s.png"
17. }, {
18. title : "港媒:占中不得人心,内讧频繁!!",
19. icon : "../css/res/appcan_s.png"
20. }]
21. }, {
22. title : "B",
23. groupId : "B",
24. items : [{
25. title : "iPhone6 本月将登陆韩国:三星或兵败家门口",
26. icon : "../css/res/appcan_s.png"
27. }, {
28. title : "苹果前雇员为乔帮主洗冤:个性强烈非恶意",
29. icon : "../css/res/appcan_s.png"
30. }]
31. }]);

注:更多Listview示例详见官网首页功能演示App:HiAppcan