当前位置: 首页 > news >正文

鸿蒙实现金刚区效果

前言:

DevEco Studio版本:4.0.0.600

所谓“金刚区"是位于APP功能入口的导航区域,通常以“图标+文字”的宫格导航的形式出现。之所以叫“金刚区”,是因为该区域会随着业务目标的改变,展示不同的功能图标,就像“变形金刚”一样可以百变。

效果:

 

实现原理:

通过效果可以知道整体是Grid+底部的指示器构建完成

Grid参考:OpenHarmony Grid组件介绍

底部指示器参考之前文章:鸿蒙中Swiper指示器位置设置_deveco studio里面的indicator属性-CSDN博客

代码实现:

import promptAction from '@ohos.promptAction';
import { KingKongBean } from '../bean/KingKongBean';@Entry
@Component
struct Index {// 创建swiper组件控制器private swiperController: SwiperController = new SwiperController();// swiper显示数据private kingKongData: KingKongBean[] = [new KingKongBean("https://www.wanandroid.com/blogimgs/42da12d8-de56-4439-b40c-eab66c227a4b.png", "数据一"),new KingKongBean("https://www.wanandroid.com/blogimgs/62c1bd68-b5f3-4a3c-a649-7ca8c7dfabe6.png", "数据二"),new KingKongBean("https://www.wanandroid.com/blogimgs/50c115c2-cf6c-4802-aa7b-a4334de444cd.png", "数据三"),new KingKongBean("https://www.wanandroid.com/blogimgs/42da12d8-de56-4439-b40c-eab66c227a4b.png", "数据四"),new KingKongBean("https://www.wanandroid.com/blogimgs/62c1bd68-b5f3-4a3c-a649-7ca8c7dfabe6.png", "数据五"),new KingKongBean("https://www.wanandroid.com/blogimgs/50c115c2-cf6c-4802-aa7b-a4334de444cd.png", "数据六"),new KingKongBean("https://www.wanandroid.com/blogimgs/42da12d8-de56-4439-b40c-eab66c227a4b.png", "数据七"),new KingKongBean("https://www.wanandroid.com/blogimgs/62c1bd68-b5f3-4a3c-a649-7ca8c7dfabe6.png", "数据八"),new KingKongBean("https://www.wanandroid.com/blogimgs/50c115c2-cf6c-4802-aa7b-a4334de444cd.png", "数据九"),];@State swiperData: Array<KingKongBean>[] = []private maxNumber: number = 6//每个金刚区的数量aboutToAppear() {let countLength = this.kingKongData.length / this.maxNumberconsole.info("1111111111111:   " + countLength)for (let i = 0; i < countLength; i++) {this.swiperData.push(this.kingKongData.slice(i * this.maxNumber, (i + 1) * this.maxNumber))console.info("1111111111111 22222:   " + i)}}build() {Column() {Swiper(this.swiperController) {ForEach(this.swiperData, (item: Array<KingKongBean>) => {Column() {Grid() {ForEach(item, (imageBean: KingKongBean) => {GridItem() {Column() {//内容区Image(imageBean.imageUrl).width(120).height(120).borderRadius(60)Text(imageBean.title).margin({ top: 10 }).fontSize(22).fontColor(Color.Black)}.onClick(() => {promptAction.showToast({ message: "点击了: " +  imageBean.title})})}})}.columnsTemplate('1fr 1fr 1fr').columnsGap(10) //列之间间距.rowsGap(10) //行之间间距.height(360)//空白区Column().width('100%').height(50)}})}.width('100%').loop(false).autoPlay(false)//通过indicator属性,控制导航点在空白区域.indicator(new DotIndicator().color(Color.White).bottom(15))}.width('100%').height('100%').backgroundColor('#F1F3F5')}
}

KingKongBean类

export class KingKongBean {imageUrl: string //图片地址title: string //金刚区titleconstructor(imageUrl: string, title: string) {this.imageUrl = imageUrlthis.title = title}
}

权限添加

因为图片链接是网络图片需要添加网络访问权限,在module.json5中添加

"requestPermissions": [{"name": 'ohos.permission.INTERNET'}
]

http://www.lryc.cn/news/376372.html

相关文章:

  • Ubuntu 查看设备温度
  • 大型网站优化指南:打造流畅的在线体验
  • Redis变慢了?
  • 11.6.k8s实战-节点扩缩容
  • 相亲交友APP系统|婚恋交友社交软件|语音聊天平台定制开发
  • 2005-2022年款福特福克斯维修手册和电路图线路图接线图资料更新
  • nodejs爬取小红书图片
  • MySQL从5.7升级到8.0步骤及其问题
  • 中年帕金森:守护健康,从容面对生活挑战
  • oracle块跟踪
  • 【机器学习】第3章 K-近邻算法
  • 求和 最大值 最小值 reduce Math.min Math.max
  • MyBatis 源码分析--获取SqlSession
  • Upload-Labs:Pass - 1(JS前端白名单)
  • vue大作业-实现学校官网
  • 24面试记录002
  • cocos 按钮
  • 文件扫描工具都有哪些?职场大佬都在用的文本提取工具大盘点~
  • 【学习】程序员资源网站
  • 游戏缓存与异步持久化的完美邂逅
  • MySQL 高级 - 第十二章 | 数据库的设计规范
  • 【Python】AJAX
  • scikit-image安装报错
  • STM32(七)———TIM定时器(基本and通用)
  • Spring中网络请求客户端WebClient的使用详解
  • 那些年我为了考PMP踩过的坑.....
  • 邦芒解析:新人入职后存在的三种职场心理误区
  • MFC案例:利用SetTimer函数编写一个“计时器”程序
  • 2. 音视频H264
  • 烽宇团队回报社会,走进贵州山区公益行