加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1_lazy.ets 1.51 KB
一键复制 编辑 原始数据 按行查看 历史
denis.pikalov 提交于 2024-06-10 10:24 . Add tests
let c = 0;
class DS implements IDataSource {
private arr: any[] = [];
private dcl: DataChangeListener;
constructor() {
this.arr = Array(100).fill(0).map((v,i) => `${i}`);
//console.log('pikalov DS.constructor');
}
totalCount(): number {
//console.log('pikalov', 'totalCount');
return this.arr.length;
}
getData(index: number): any {
//console.log('pikalov', `getData(${index})`)
return this.arr[index];
}
registerDataChangeListener(listener: DataChangeListener): void {
//console.log('pikalov', 'registerDataChangeListener')
this.dcl = listener;
}
unregisterDataChangeListener(listener: DataChangeListener): void {
//console.log('pikalov', 'un-registerDataChangeListener')
}
}
@Entry
@Component
struct MyComponent {
@State ds:DS = new DS();
scroller: Scroller = new Scroller();
build() {
Column() {
Text('1_lazy.ets')
Row() {
Button('Scroll top').onClick(() => this.scroller.scrollToIndex( 0))
Button('Scroll mid').onClick(() => this.scroller.scrollToIndex(50))
}
List({ space: 3, scroller:this.scroller }) {
LazyForEach(this.ds, (item) => {
ListItem() {
Text(`item: ${item} ${c%2}`).fontSize(32 + 32 * (c%2) )//(128)
}
.onAppear(()=>{
//console.error("@Component LazyForEach > ListItem onAppear")
})
},
(item) => item
)//.cachedCount(5)
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化