HarmonyOS鸿蒙Next中Scroller控制器的使用
5 回复
建议使用BuilderParam装饰器
,通过尾随闭包传递一个自定义构建函数给父组件,此时this
指向父组件,
@Component
export struct CellGroup {
@BuilderParam
default: () => void = this.getDefaultBuilder
@Builder
getDefaultBuilder() {
}
build() {
// ...
}
}
// ...
@Builder
XxxBuilder() {
}
// ...
// 父组件 CellGroup() { // 尾随闭包 this.XxxBuilder() // this指向父组件 }
CellGroup({default: () => { this.ProfileBuilder() // 箭头函数传递,this指向调用者 }})
若通过箭头函数传递该自定义构建函数则`this`指向它的调用者。
更多关于HarmonyOS鸿蒙Next中Scroller控制器的使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
@Link
装饰的变量禁止本地初始化,否则编译期会报错。
允许装饰的变量类型:
- Object、class、string、number、boolean、enum 类型,以及这些类型的数组。
- 支持 Date 类型。
- API11 及以上支持 Map、Set 类型。
- 支持 ArkUI 框架定义的联合类型 Length、ResourceStr、ResourceColor 类型。
- 类型必须被指定,且和双向绑定状态变量的类型相同。
- 支持类型的场景请参考 观察变化。
- 不支持 any。
- API11 及以上支持上述支持类型的联合类型,比如 string | number, string | undefined 或者 ClassA | null,示例见 Link支持联合类型实例。
注意:
- 当使用 undefined 和 null 的时候,建议显式指定类型,遵循 TypeScript 类型校验,比如:
@Link a : string | undefined
。
A, B 组件什么关系? 父子组件?
正常当成属性传递过去就可以了. (有点奇怪@link不能修饰)
组件C调用组件A和B,组件A中scroll可以自己滚动,组件B中执行左右滑动也会引发组件A中scroll的滚动。
在HarmonyOS鸿蒙Next中,Scroller
控制器用于实现平滑滚动效果,常用于自定义滚动视图或动画。通过Scroller
,可以控制滚动的起始位置、结束位置、持续时间和速度。使用时,首先创建Scroller
实例,然后调用startScroll()
方法设置滚动参数,最后在onDraw()
或onLayout()
中调用computeScrollOffset()
和scrollTo()
方法实现滚动效果。Scroller
提供了灵活的控制方式,适用于复杂的滚动需求。