追剧是什么意思| 没有什么过不去| c反应蛋白是查什么的| 农历五月十八是什么日子| 跳闸是什么原因| 牛肉和什么炒最好吃| otg线是什么| 乖巧是什么意思| 吃什么增加孕酮| 生命科学专业学什么| 三月份生日是什么星座| 细菌性肠炎是什么原因引起的| 什么是色弱| 375是什么意思| av是什么| 属蛇本命佛是什么佛| 96是什么意思| 张紫妍为什么自杀| 买什么化妆品好| 五毒为什么没有蜘蛛| 血红素高是什么原因| 什么减肥药最管用| 怼怼是什么意思| 互诉衷肠是什么意思| 沙里瓦是什么意思| 房产税什么时候开始征收| 心血管科是看什么病| 不射精是什么原因| 传媒公司主要做什么| 移植后可以吃什么水果| 安宫牛黄丸为什么那么贵| 开字五行属什么| 中水是什么| 虾和什么相克| 肾精亏虚吃什么药| 白色加红色等于什么颜色| 脊柱炎是什么症状| 为什么老是做噩梦| 自信过头叫什么| 原发性和继发性是什么意思| 儿童发育过早应该挂什么科| 无创什么时候做| 吸氧机什么牌子好| scj是什么意思| 郁闷是什么意思| 鹿柴什么意思| 尿检肌酐高是什么原因| 抑郁症吃什么药最好| 颈部淋巴结挂什么科| 由可以组什么词| 嘴唇起水泡是什么原因| 01年属蛇的是什么命| 大浪淘沙下一句是什么| 太后是皇上的什么人| 情人的定义是什么| 左侧小腹疼是什么原因| 淋巴是什么| 不适是什么意思| 左眼皮跳是什么预兆| 处男什么意思| 盆腔炎要做什么检查| 肾阴虚吃什么| 尿蛋白是什么| 小孩子上户口需要什么证件| 合肥有什么特产| 肚脐左边是什么器官| 荨麻疹抹什么药| 2009年是什么生肖年| 侍寝是什么意思| bhcg是什么意思| asia是什么意思| 高血压适合做什么运动| plv是什么意思| 太阳出来我爬山坡是什么歌| 红薯用什么繁殖| naomi什么意思| 评头论足什么意思| 灶性肠化是什么意思| 阴道里面长什么样| 金钱能买来什么但买不来什么| 守旧是什么意思| 什么孩子该看心理医生| 吃什么补肝养肝| 吃饭肚子疼是什么原因| 心窝窝疼是什么原因| atp是什么意思| 怀孕初期胸部有什么变化| 四季花是什么花| 蓝颜知己是什么关系| 了是什么意思| rh血型是什么血型| 带节奏是什么意思| 猫对什么颜色感兴趣| 85年什么命| 小猫什么时候打疫苗| 梦见自己生病住院了是什么意思| 肉什么结构| 红血丝用什么护肤品修复比较好| 梅毒检查挂什么科| 虾不能和什么食物一起吃| 寄生虫是什么意思| 抖腿有什么好处| 什么是| 沾沾喜气什么意思| 生脉饮适合什么人群| 黄花鱼是什么鱼| 瘖什么意思| 进入icu病房意味着什么| 零度是什么意思| 精子什么味道| 内窗是什么意思| 属牛的婚配什么属相最好| 六十岁是什么之年| 封顶是什么意思| 农历十月十八是什么星座| 尿激酶的作用及功效是什么| 眼震是什么症状| 你说到底为什么都是我的错| 气血亏吃什么补的快| 香雪酒属于什么酒| 腋臭是什么原因引起的| pm是什么| 胖大海是什么| o型阴性血是什么意思| 不完全性右束支传导阻滞是什么意思| 如果怀孕了会有什么预兆| 嗓子疼咳嗽挂什么科| 晒太阳对身体有什么好处| 为什么打哈欠会传染| 丙球是什么| 撤退性出血是什么意思| 什么样的小溪| 胃胀气打嗝是什么原因| 甲状腺球蛋白抗体高说明什么| 检查肺挂什么科| 内项和外项是什么| 牙疼吃什么消炎药| 骨质增生吃什么药好| 龙凤胎是什么意思| 睡觉后腰疼是什么原因引起的| 鱼缸为什么不能送人| ad医学上是什么意思| 为什么舌头老是有灼烧感| whoo是什么牌子| 九品芝麻官是什么级别| 身上长瘊子是什么原因| 为什么痛风就痛一只脚| 下午五点多是什么时辰| 口腔溃疡喝什么水| 陈宝莲为什么自杀| 毓婷是什么| 高血压属于什么系统疾病| 吃枸杞有什么好处| 7月11号什么星座| 暗送秋波什么意思| 为什么会反复发烧| 靶向是什么意思| 老年人生日送什么礼物| 硬化萎缩性苔藓是什么病| 每天放很多屁是什么原因| 多囊卵巢综合症是什么| 作梁是什么意思| 心脏跳的快是什么原因| 牙龈为什么会萎缩| 绿茶有什么功效| cri是什么意思| 符号是什么意思| 伞裙搭配什么上衣| 左卵巢囊性回声什么意思| 松弛是什么意思| 停车坐爱枫林晚的坐是什么意思| 西柚不能和什么一起吃| innisfree是什么牌子的化妆品| 异常白细胞形态检查是查什么病| 眉梢有痣代表什么| 正太是什么| 亲嘴会传染什么病| 豆芽不能和什么一起吃| tf口红是什么牌子| 吉士粉是什么东西| 手腕痛挂什么科| 日本为什么经常地震| 想吃肉是身体缺什么| 吃什么对嗓子好| 肠胃炎吃什么水果比较好| 立冬吃什么| 无以回报是什么意思| 水灵是什么意思| 下腹部胀是什么原因| 肛门指检能查出什么| 什么情况下会感染hpv病毒| 锦鲤可以和什么鱼混养| 酸碱度偏高是什么意思| 处女什么意思| 梦见孩子拉粑粑是什么意思| 血友病是什么病| 六味地黄丸有什么功效| 红彤彤的什么| 肝浸润是什么意思| 一个入一个肉念什么| ca医学上是什么意思| 弯男是什么意思| 奇异果是什么| 漂发是什么意思| 大姑姐是什么意思| 囊肿什么意思| 八股文是什么| 木槿花什么时候开花| 梦见插秧是什么意思| 为什么大便不成形| 一月十九号是什么星座| gr是什么元素| 什么地喝| 势利眼是什么意思| 私联是什么意思| 什么饮料能解酒| 来月经不能吃什么水果| 心脏跳的慢吃什么好| 西亚是什么人种| 月什么意思| 文曲星什么意思| 消渴是什么意思| 鸡汤炖什么菜好吃| 月经量少吃什么药| 松子是什么树的果实| 梦见蛇咬别人是什么意思| 海鲜菇不能和什么一起吃| 雷锋是什么生肖| 早上眼屎多是什么原因| 农历今天什么日子| 冰箱冷藏室结冰是什么原因| 芹菜不能和什么食物一起吃| 武则天为什么立无字碑| 女性尿酸低是什么原因| 低血糖吃什么药| 长口腔溃疡是什么原因| 晚上咳嗽什么原因| 吃什么食物降尿酸最快| 柯基为什么要断尾巴| 症瘕是什么意思| 汶字五行属什么| 刚出生的宝宝要注意什么| 疙瘩是什么意思| 羊水偏多是什么原因| 食欲不振吃什么药| 双喜临门是什么生肖| 眼睛不好吃什么补眼睛| 立本是什么意思| 我在你心里是什么颜色| 感冒是什么原因引起的| 胰腺是什么| 天门冬氨酸氨基转移酶是什么| 甲功七项能查出什么病| 死心眼什么意思| 身上长疮是什么原因引起的| 回南天是什么意思| 毛豆吃多了有什么坏处| 吃布洛芬不能吃什么| 女生下面是什么样的| 分销是什么意思| egcg是什么| 醪糟发酸是什么原因| 肾功能不全有什么症状| 1963年属什么| 百度

一季度重庆市房地产开发建设呈增长态势

阅读量0
0
0

场景描述

List组件作为整个首页长列表的容器,通过ListItem对不同模块进行视图界面定制,常用于门户首页、商城首页等多类型视图展示的列表信息流场景。

本场景以应用首页为例,将除页面顶部搜索框区域的其它内容,放在List组件内部,进行整体页面的构建。进入页面后,下滑刷新模拟网络请求;滑动页面列表内容,景区标题吸顶;滑动到页面底部,上滑模拟请求添加数据。

1.png

实现原理

根据列表内部各部分视图对应数据类型的区别,渲染不同的ListItem子组件。

Refresh组件可以进行页面下拉操作并显示刷新动效,List组件配合使用Swiper、Grid等基础组件用于页面的整体构建,再通过List组件的sticky属性、onReachEnd()事件和Refresh组件的onRefreshing()事件,实现下滑模拟刷新、上滑模拟添加数据及列表标题吸顶的效果。

开发步骤

顶部搜索框区域

.Row() {
.  Text('Beijing')
.    // ...
.  TextInput({ placeholder: 'guess you want to search...'})
.    // ...
.  Text('more')
.    // ...
.}

HomePage.ets

实现效果:
图片5.png

  1. 在List的第一个ListItem分组中,使用Swiper组件构建页面轮播图内容。
.List({ space: 12 }) {
.  // Swiper
.  ListItem() {
.    Swiper() {
.      ForEach(this.swiperContent, (item: SwiperType) => {
.        Stack({ alignContent: Alignment.BottomStart }) {
.          Image($r(item.pic))
.        }
.      }, (item: SwiperType) => JSON.stringify(item))
.    }
.    // ...
.    .autoPlay(true) // Set the sub-component to play automatically
.    .duration(1000) // Set the animation duration of the sub-component switchover
.    .curve(Curve.Linear) // Set the animation curve to uniform speed
.    .indicator( // Set the navigation point indicator
.      new DotIndicator()
.        .selectedColor(Color.White)
.    )
.    .itemSpace(10) // Set the space between sub-components
.    // ...
.  }
.  // ...
.}

HomePage.ets

实现效果:

图片6.png

  1. 在List的第二个ListItem分组中,使用Grid组件构建页面网格区域。
.List({ space: 12 }) {
.  // Swiper
.  ListItem() {
.    // ...
.  }
.  // Grid
.  ListItem() {
.    Grid() {
.      ForEach(this.gridTitle, (item: Resource) => {
.        GridItem() {
.          Column() {
.            Image($r('app.media.pic1'))
.              // ...
.            Text(item)
.              // ...
.          }
.        }
.      }, (item: Resource) => JSON.stringify(item))
.    }
.    .rowsGap(16) // Set the line spacing
.    .columnsGap(19) // Set the column spacing
.    .columnsTemplate('1fr 1fr 1fr 1fr 1fr') // Set the proportion of each column
.    // ...
.  }
.  // ...
.}

HomePage.ets

实现效果:

图片7.png

  1. 推荐内容及列表内容的构建。
.// Scenic spot list content details
.@Builder
.scenicSpotDetailBuilder(title: Resource) {
.  Column() {
.    Image($r('app.media.pic1'))
.      // ...
.    Column() {
.      Text(title)
.        // ...
.      Text() {
.        Span('Multi person group discount:')
.          // ...
.        Span('999¥')
.          // ...
.      }
.      .margin({ top: 4, bottom: 4 })
.
.      Text() {
.        Span('Multi person group discount:')
.        Span('1999¥')
.      }
.      // ...
.    }
.    // ...
.  }
.}
HomePage.ets
.List({ space: 12 }) {
.  // Swiper
.  ListItem() {
.    // ...
.  }
.  // Grid
.  ListItem() {
.    // ...
.  }
.  // Customize display area.
.  ListItem() {
.    Row() {
.      Image($r('app.media.pic1'))
.        // ...
.      Image($r('app.media.pic1'))
.        // ...
.    }
.    // ...
.  }
.
.  // Scenic spot classification list.
.  ForEach(this.scenicSpotTitle, (item: Resource) => {
.    ListItemGroup({ header: this.scenicSpotHeader(item) }) {
.      ForEach(this.scenicSpotArray, (scenicSpotItem: Resource) => {
.        ListItem() {
.          this.scenicSpotDetailBuilder(scenicSpotItem);
.        }
.      }, (scenicSpotItem: Resource) => JSON.stringify(scenicSpotItem))
.    }
.    .borderRadius(this.borderRadiusVal)
.  }, (item: Resource) => JSON.stringify(item))
.
.  // ...
.}

HomePage.ets

实现效果:
图片8.png

将构建好的页面内容,放在Refresh组件内部,并给List和Refresh组件添加对应的onReachEnd()和onRefreshing()回调,实现下拉模拟刷新和上滑添加列表数据的效果。

.// Top search box.
.Row() {
.  // ...
.}
.// ...
.
.// Pull down refresh component.
.Refresh({ refreshing: $$this.isRefreshing }) {
.  // List as a long list layout.
.  List({ space: 12 }) {
.    // Swiper
.    ListItem() {
.      // ...
.    }
.    // Grid
.    ListItem() {
.      // ...
.    }
.    // Customize display area.
.    ListItem() {
.      // ...
.    }
.
.    // Scenic spot classification list.
.    ForEach(this.scenicSpotTitle, (item: Resource) => {
.      // ...
.    }, (item: Resource) => JSON.stringify(item))
.
.    // Customize bottom loading for more.
.    ListItem() {
.      Row() {
.        if (!this.noMoreData) {
.          LoadingProgress()
.            // ...
.        }
.        Text(this.noMoreData ? $r('app.string.no_more_data') : $r('app.string.loading_more'))
.      }
.      // ...
.    }
.    // ...
.  }
.  // ...
.  .onReachEnd(() => { // Callback triggered when the list is added to the end position
.    if (this.scenicSpotArray.length >= 20) {
.      // When the list data is greater than or equal to 20, noMoreData is set to true
.      this.noMoreData = true;
.      return;
.    }
.    setTimeout(() => {
.      this.scenicSpotArray.push('scenic area' + (this.scenicSpotArray.length + 1));
.    }, 500)
.  })
.}
.// Pull down refresh, simulate network request.
..onRefreshing(() => {
.  this.isRefreshing = true; // Enter the refresh state
.  setTimeout(() => {
.    // Set the landscapeSpotArray to the initial value
.    this.scenicSpotArray =
.      this.scenicSpotArray = ['scenic area 1', 'scenic area 2', 'scenic area 3', 'scenic area 4', 'scenic area 5'];
.    this.noMoreData = false;
.    this.isRefreshing = false;
.  }, 2000)
.})```

HomePage.ets

实现效果

2.png

本文主要引用整理于鸿蒙官方文档

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。?侵权投诉
链接复制成功,分享给好友
什么东西清肺最好 宫颈炎吃什么药效果最好 33朵玫瑰花代表什么意思 老说梦话是什么原因 怕金病帕金森是什么症状
脸红是什么大病的前兆 denham是什么牌子 宫颈那囊是什么 化学性肝损伤是什么意思 qa和qc有什么区别
大专什么专业就业前景好 家里镜子放在什么位置比较好 恏是什么意思 韭菜和什么不能一起吃 儿女双全是什么意思
血清高是什么原因 什么可以吃 黑卡是什么卡 女人嘴唇发紫是什么病 鼻子上长脓包型痘痘是什么原因
窦缓是什么意思hcv9jop4ns1r.cn 44是什么意思tiangongnft.com 血小板高是什么问题bjhyzcsm.com rcc是什么意思jasonfriends.com 柔软对什么hcv9jop4ns8r.cn
老虎头衣服是什么牌子hcv9jop0ns6r.cn jeans什么意思hcv8jop4ns7r.cn 老人适合吃什么水果hanqikai.com pv是什么材质hcv7jop9ns8r.cn 梦见拉麦子是什么预兆hcv9jop1ns3r.cn
swell是什么牌子hcv7jop5ns0r.cn 火镰是什么意思hcv8jop7ns0r.cn 为什么医生很少开阿斯美hcv9jop1ns4r.cn 梦见请别人吃饭是什么意思0735v.com 梦到钱丢了预示着什么hcv7jop6ns5r.cn
因缘际会是什么意思hcv7jop5ns3r.cn 补充蛋白质吃什么最好hcv9jop5ns7r.cn 为什么种牙那么贵hcv9jop2ns7r.cn 国印贵人是什么意思hcv8jop6ns0r.cn 六味地黄丸起什么作用hcv8jop8ns8r.cn
百度