HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数
HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数
bindSheet中的builder,如何传入参数
如果有一个 builder 如下
class Tmp {
paramA1: string = ''
}
@Builder function overBuilder(params: Tmp) {
Row() {
Text(`UseStateVarByReference: ${params.paramA1} `)
}
}
overBuilder和组件不在一个 ArkTs 文件中,此时bindSheet如何传入参数params: Tmp
更多关于HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
参考此Demo:
//SheetDemo .ets
import { sheetBuilder } from './MyBuilder'
@Entry
@Component
struct SheetDemo {
@State isShowSheet: boolean = false
private items: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
build() {
Column {
Button('Open Sheet').width('90%').height('80vp')
.onClick(() => {
this.isShowSheet = !this.isShowSheet
})
.bindSheet($$this.isShowSheet,sheetBuilder(this.items), {
detents: [SheetSize.MEDIUM, SheetSize.LARGE, 600],
preferType: SheetType.BOTTOM,
title: { title: '嵌套滚动场景' },
})
}.width('100%').height('100%')
.justifyContent(FlexAlign.Center)
}
}
//MyBuilder.ets
@Builder
export function sheetBuilder(items:number[]) {
Column {
// 第一步:自定义滚动容器
List({ space: '10vp' }) {
ForEach(items, (item: number) => {
ListItem() {
Text(String(item)).fontSize(16).fontWeight(FontWeight.Bold)
}.width('90%').height('80vp').backgroundColor('#ff53ecd9').borderRadius(10)
})
}
.alignListItem(ListItemAlign.Center)
.margin({ top: '10vp' })
.width('100%')
.height('900px')
// 第二步:设置滚动组件的嵌套滚动属性
.nestedScroll({
scrollForward: NestedScrollMode.PARENT_FIRST,
scrollBackward: NestedScrollMode.SELF_FIRST,
})
Text("非滚动区域")
.width('100%')
.backgroundColor(Color.Gray)
.layoutWeight(1)
.textAlign(TextAlign.Center)
.align(Alignment.Top)
}.width('100%').height('100%')
}

