相关问题
#鸿蒙通关秘籍#鸿蒙栅格布局中如何设置布局的总列数?
958浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
1790浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中设置GridRow的总列数?
1217浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙图片组件的布局参数?
1216浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
1207浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义GridItem布局在鸿蒙开发中?
1246浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在HarmonyOS Next中使用Flex组件进行图片布局时,如何自定义列数来实现不同的布局效果?
940浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中定义自定义转场动画?
1030浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Grid布局中跨行跨列放置组件?
1318浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
1713浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙的ArkTS中创建自定义Sendable类?
1207浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义Swiper组件的切换动画?
1555浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中自定义底部标签栏的样式和布局?
753浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现自定义安全键盘的布局?
1370浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
1267浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义焦点框样式?
972浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?
1225浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义FrameNode的测量布局与绘制?
1317浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何为栅格子组件设置偏移列数?
985浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
1209浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙全局状态弹窗的布局和内容?
970浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
1589浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中查询自定义组件的页面信息?
1059浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中实现TabBar的自定义动画效果?
1195浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在NodeContainer中实现自定义组件节点的切换?
1537浏览 • 1回复 待解决
在鸿蒙开发中,可以通过传入自定义列数的参数实现图片布局的自定义列数。在
aboutToAppear
方法中判定传入的col
参数,当col
大于0时,按照自定义列数计算所需的行数和每张图片的宽度。然后在build
方法中使用Flex
组件和ForEach
循环,传入的col
值会决定每行图片的数量,从而实现自定义列数的布局。typescript aboutToAppear() { this.arraySize = this.imageSource.length; if (this.col > COLUMNS_0) { this.row = Math.ceil(this.arraySize / this.col); this.imageWidth =
calc((100% - ${this.imageSpacing * (this.col - 1)}vp ) / ${this.col})
; } }build() { Flex({ wrap: FlexWrap.Wrap, justifyContent: FlexAlign.Start }) { ForEach(this.imageSource.slice(0, this.arraySize), (item: string | Resource, idx: number) => { Image(item) .attributeModifier(this.modifier) .autoResize(true) .objectFit(this.imageFit) .aspectRatio(this.imageAspectRatio) .width(this.imageWidth) .margin({ bottom: (idx + 1) > ((this.row - 1) * this.col) ? 0 : this.imageSpacing, right: (idx + 1) % this.col === 0 ? 0 : this.imageSpacing }); }); }.width(this.flexWidth); }