hpv什么时候检查最好| 白痰多是什么原因| 遨游是什么意思| 干姜和生姜有什么区别| 瘦肉炒什么好吃| 非甾体是什么意思| 双子座是什么性格| 司空见惯是什么意思| 佝偻病是什么症状| 女人梦见蛇预示着什么| 水晶是什么| 耳鸣需要做什么检查| pi什么意思| 肾不好吃什么好| 什么是内卷| 湿气重吃什么水果| 小腿肌肉疼是什么原因| 什么动物不睡觉| 抗组胺是什么意思| 半路杀出个程咬金是什么意思| 心梗做什么检查| 不二法门是什么意思| 什么是妈宝男| 阚姓念什么| 人为什么会长痣| 可见一什么| pci是什么| 糖醇是什么意思| 有肾病的人吃什么好| 茉莉花茶属于什么茶类| 慢生活是什么意思| 什么叫抑郁症| 胃胀是什么感觉| 酸性体质是什么意思| joola是什么牌子| 十二指肠球炎是什么意思| 头发白是什么原因| 黄金有什么作用与功效| 1936年是什么年| 搬家 送什么| 马来玉是什么玉| 淤青擦什么药| 没有孕吐反应说明什么| 男人为什么累| 孕妇上火了吃什么降火最快| 很棒是什么意思| 什么叫缘分| 冰希黎香水什么档次| 五月二十三日是什么星座| 一什么见什么| 米氮平是什么药| 月经结束一周后又出血是什么原因| 糖宝是什么虫| 睾丸扭转有什么症状| 尿潜血1十是什么原因| 泡脚什么时候泡最好| 为什么发烧| 灰指甲有什么症状| 乙肝两对半25阳性是什么意思| 什么的原始森林| 杏和什么不能一起吃| 鸡蛋和面粉可以做什么好吃的| 十月底是什么星座| 基因突变发生在什么时期| 看病人送什么| 苏州有什么特产可以带回家| 血镁偏高是什么原因| 治未病是什么意思| 额头出汗是什么原因| 一品诰命夫人是什么意思| 支原体吃什么药好得快| 3岁小孩不会说话是什么原因| 女性阳性是什么病| 指甲中间凹陷是什么原因| 做月子可以吃什么| 为什么人会打嗝| 孕妇梦见小蛇是什么意思| 裤裙搭配什么上衣好看| 腰疼吃什么药最有效| 不举什么意思| dw手表属于什么档次| 尿蛋白十一什么意思| 鼓刹和碟刹有什么区别| 猪冲蛇开什么生肖| 咳咳是什么意思| 吃杏仁有什么好处| 颞颌关节紊乱挂什么科| 血气分析是检查什么的| 双脚浮肿是什么原因| 黄历今天是什么日子| 睡觉手麻是什么原因| 什么习习| 阴唇为什么会长痘痘| seconds是什么意思| 黄瓜和什么不能一起吃| 黄鼻涕是什么类型的感冒| 五月底是什么星座| 邮政什么时候上班| 亚甲炎是什么病| 子是什么生肖| 无水焗是什么意思| 探望是什么意思| 吃什么可以提高代谢| 补肝血吃什么药| 6月18号是什么星座| 反流性食管炎可以吃什么水果| 发乎情止乎礼什么意思| 音节是指什么| 香膏是什么| 高血脂不能吃什么| 跑完步喝什么水最好| 噫气是什么意思| 草果在炖肉起什么作用| 安慰的意思是什么| 川军为什么那么出名| 泰坦尼克号女主角叫什么| 阳贵是什么意思| 为什么听力会下降| 羊水浑浊是什么原因造成的| 肠道蠕动慢吃什么药| 哺乳期发烧吃什么药不影响哺乳| 挽尊什么意思| 肛门痒挂什么科检查| 头发一把一把的掉是什么原因| dob是什么意思| 海底轮是什么意思| 患难见真情的上一句是什么| 婴儿游泳有什么好处和坏处| 结扎后需要注意什么| 什么是溶液| 空调吹感冒吃什么药| 体寒是什么意思| 爸爸的哥哥叫什么| 降调是什么意思| 阴唇肥大是什么原因| 什么鱼最好养| 三点水是什么字| 牙疼是什么火引起的| 杀青什么意思| 热的什么| 嘘寒问暖是什么意思| 夏季穿什么鞋| 拍档是什么意思| 梦到老公被蛇咬是什么意思| 什么是肥皂剧| 玉屏风治什么病最好| 骨折长骨痂有什么反应| 水瓶座和什么座最配| 武则天是什么生肖| 优思明是什么| 鼻子不通气吃什么药| 压车是什么意思| 89年属蛇是什么命| 基佬什么意思| 反流性食管炎吃什么中成药| 手没有力气是什么原因| 结婚十年是什么婚| rst是什么意思| 测试你是什么样的人| 内痔疮有什么症状| l读什么| 头疼看什么科| 什么是dha| 武警和特警有什么区别| 嘴唇暗紫色是什么原因| 妃是什么意思| marmot什么牌子| 荠菜什么时候播种最好| 一什么凉席| 低血压挂什么科| 考拉吃什么食物| 肚脐右边疼是什么原因| 心率低有什么危害| 拉肚子喝什么粥| 阮小五的绰号是什么| 圣人是什么意思| 光屏是什么| 半夏微凉是什么意思| 鼻渊是什么意思| 喝豆浆有什么好处和坏处| 看灰指甲挂什么科| 什么是义眼| 外阴白斑是什么引起的| 为什么会有高血压| 荣膺是什么意思| robinhood是什么牌子| 分诊是什么意思| 小产和流产有什么区别| 兆上面是什么单位| 性激素是查什么| 甲状腺4a类什么意思| 羊毛疔是什么病| 鹦鹉吃什么水果| 水肿是什么原因引起的| 肠炎用什么药| 用进废退什么意思| 高职本科是什么意思| 花生死苗烂根用什么药| 胃疼为什么后背也疼| 多吃玉米有什么好处和坏处| macd是什么| 空腹血糖高吃什么药| 用醋泡脚有什么好处| 腺样体肥大是什么意思| 驳什么意思| 花儿为什么这样红简谱| 颔是什么部位| 什么鱼清蒸最好吃| 男性尿路感染有什么症状| 口臭口苦什么原因引起的| 性格内敛是什么意思| 脾虚湿蕴证是什么意思| 放射治疗是什么意思| 当驾校教练需要什么条件| 办港澳通行证需要带什么| 葡萄不能和什么一起吃| 叶黄素是什么东西| 肝囊性灶是什么意思| 尿检红细胞高是什么原因| 低筋面粉能做什么| 鹅什么时候开始下蛋| cy是什么意思| 雪松香是什么味道| 什么东西不能托运| 急性结膜炎用什么眼药水| 扬字五行属什么| 全身是宝的动物是什么生肖| 备孕要注意什么| 拉肚子吃什么药好| 菲薄是什么意思| 生化是什么原因引起的| 学生吃什么补脑子增强记忆力最快| 路上遇到蛇是什么征兆| 肝功能异常是什么意思| 11月27是什么星座| 正直是什么意思| 做梦梦到已故的亲人是什么意思| 1885年属什么生肖| 2006年属什么生肖| 专班是什么意思| 为什么不能空腹吃香蕉| 送荷花的寓意是什么| 中医学学什么| 请多指教是什么意思| 对公转账是什么意思| drg是什么| 血糖高什么原因引起| 牙齿遇冷热都痛是什么原因| 517是什么星座| 嘚是什么意思| 眼睛干涩吃什么药| 定位是什么意思| 血色素是什么| 手抖是什么原因导致的| 葛根长什么样子图片| 羊肚是羊的什么部位| 天冬是什么| 迪赛尼斯属于什么档次| bu什么颜色| 调味茶和茶有什么区别| 女人裹脚是从什么时候开始的| 女人得痔疮原因是什么| 林彪为什么出逃| 胃间质瘤是什么性质的瘤| 百度

ahc属于什么档次

阅读量0
0
0

分组吸顶场景

场景描述

双列表同向联动,右边字母列表用于快速索引,内容列表根据首字母进行分组,常用于通讯录、城市选择、分组选择等页面。

本场景以城市列表页面为例,左侧城市列表数据和右侧字母导数据通过List组件来展示,并通过Stack组件使两个列表数据分层显示。在进入页面后,通过滑动左侧城市列表数据,列表字母标题吸顶展示,对应右侧字母导航内容高亮显示;点击右侧字母导航内容,左侧城市列表展示对应内容。

页面整体结构图 页面效果图
HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景-鸿蒙开发者社区 HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景-鸿蒙开发者社区

实现原理

左侧List作为城市列表,右侧List为城市首字母快捷导航列表,通过ListItem对对应数据进行渲染展示,并使用Stack堆叠容器组件,字母导航列表覆盖城市列表上方,再给对应List添加sticky属性和onScrollIndex()方法,实现两个列表数据间的联动效果。

开发步骤

城市列表使用ListItemGroup,对“当前城市”“热门城市”“城市数据”进行分组,并通过ListItem展示每个分组中的具体数据。

// List data content.
@Builder
textContent(content: string) {
  Text(content)
    // ...
}
CityList.ets
List({ scroller: this.cityScroller }) {
  // Current city.
  ListItemGroup({ header: this.itemHead($r('app.string.current_city')) }) {
    ListItem() {
      Text(this.currentCity)
        .width('100%')
        .height(45)
        .fontSize(16)
        .padding({ left: 16, top: 12, bottom: 12 })
        .textAlign(TextAlign.Start)
        .backgroundColor(Color.White)
    }
  }

  // Popular cities.
  ListItemGroup({ header: this.itemHead($r('app.string.popular_cities')) }) {
    ForEach(this.hotCities, (item: string) => {
      ListItem() {
        this.textContent(item);
      }
    }, (item: string) => item)
  }
  .divider({
    strokeWidth: 1,
    color: '#EDEDED',
    startMargin: 10,
    endMargin: 45
  })

  // City data.
  ForEach(this.groupWorldList, (item: string) => {
    // Traverse the first letter of the city and use it as the header of the city grouping data.
    ListItemGroup({ header: this.itemHead(item) }) {
      // Retrieve and display corresponding city data based on letters.
      ForEach(this.getCitiesWithGroupName(item), (cityItem: City) => {
        ListItem() {
          this.textContent(cityItem.city);
        }
      }, (cityItem: City) => cityItem.city)
    }
  })
}

CityList.ets

右侧字母导航列表数据,同样通过List组件进行展示。

// Side letter navigation data.
Column() {
  List({ scroller: this.navListScroller }) {
    ForEach(this.groupWorldList, (item: string, index: number) => {
      ListItem() {
        Text(item)
          // ...
      }
    }

CityList.ets

使用堆叠容器组件Stack,将字母导航内容覆盖到城市列表内容上方。

Stack({ alignContent: Alignment.End }) {
  // City List Data.
  List({ scroller: this.cityScroller }) {
    // ...
  }
  // ...

  // Side letter navigation data.
  Column() {
    List({ scroller: this.navListScroller }) {
      // ...
    }
  }
  // ...
}

CityList.ets

最后,给城市列表添加sticky属性实现标题吸顶效果,及添加onScrollIndex()方法,通过selectNavIndex变量与字母导航列表内容进行关联,控制的对应字母导航内容的选中状态。

在字母导航列表中,添加点击事件,在点击事件中通过城市列表控制器cityScroller的scrollToIndex()事件,控制城市列表内容的改变,实现二者数据的联动效果。

Stack({ alignContent: Alignment.End }) {
  // City List Data.
  List({ scroller: this.cityScroller }) {
    // ...
  }
  // ...
  .onScrollIndex((index: number) => {
    // By linking the selectNavIndex state variable with index, control the selection status of the navigation list.
    this.selectNavIndex = index - 2;
  })

  // Side letter navigation data.
  Column() {
    List({ scroller: this.navListScroller }) {
      ForEach(this.groupWorldList, (item: string, index: number) => {
        ListItem() {
          Text(item)
            // ...
            .onClick(() => {
              this.selectNavIndex = index;
              // Select the navigation list and set isClickScroll to true to prevent changes in the navigation list status during the scrolling process with the city list.
              this.isClickScroll = true;
              // By using the scrollIndex method of cityScanner, control the sliding city list to specify the Index,
              // as there are "current city" and "popular city" in the city list, so the index needs to be incremented by 2.
              this.cityScroller.scrollToIndex(index + 2, false, ScrollAlign.START);
            })
        }
      }, (item: string) => item)
    }
  }
  // ...
}

CityList.ets

实现效果

HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景-鸿蒙开发者社区

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

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。?侵权投诉
链接复制成功,分享给好友
骨穿是检查什么病 心慌是什么原因导致的 马齿苋什么人不能吃 0.618是什么意思 囊性灶什么意思严重吗
支数是什么意思 嬴稷是秦始皇的什么人 乳头有点痒是什么原因 办理身份证需要带什么 睡醒口干舌燥是什么原因
喉咙里老是有痰是什么原因 长痘痘用什么药 黑鱼又叫什么鱼 1.18是什么星座 胸部什么时候停止发育
解表化湿是什么意思 打破伤风不能吃什么 冰激凌和冰淇淋有什么区别 烟雾病是什么原因引起的 小孩老是眨眼睛是什么原因
药店加盟需要什么条件hcv9jop1ns4r.cn 年上和年下是什么意思cj623037.com 申时出生五行缺什么hcv9jop0ns3r.cn 秦皇岛有什么特产adwl56.com 下面痒用什么药效果好hkuteam.com
轻微脑震荡吃什么药liaochangning.com 八八年属什么生肖hcv9jop4ns8r.cn 氨糖是什么hcv8jop2ns3r.cn 清道夫鱼有什么作用hcv7jop4ns8r.cn 太阳穴疼是什么原因hcv9jop2ns7r.cn
弱阳性是什么原因hcv9jop4ns1r.cn pr过高是什么意思hcv9jop5ns8r.cn 福禄是什么意思hcv8jop4ns3r.cn 以至于是什么意思hcv7jop5ns6r.cn cpr是什么意思hcv9jop3ns5r.cn
好色是什么意思cl108k.com 全员加速中什么时候播hcv8jop7ns0r.cn 憋气2分钟算什么水平hcv8jop6ns5r.cn 少校什么级别hcv8jop6ns1r.cn 艾滋病初期皮疹是什么样的chuanglingweilai.com
百度