未验证 提交 597556f5 编写于 作者: 耿文广 提交者: Gitee

update zh-cn/application-dev/quick-start/arkts-rendering-control-lazyforeach.md.

Signed-off-by: N耿文广 <gengwenguang@huawei.com>
上级 757e72d3
...@@ -9,22 +9,22 @@ LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程 ...@@ -9,22 +9,22 @@ LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程
```ts ```ts
LazyForEach( LazyForEach(
dataSource: IDataSource, // Data source to iterate over dataSource: IDataSource, // 需要进行数据迭代的数据源
itemGenerator: (item: Object) => void, // Child component generation function itemGenerator: (item: Object) => void, // 需要进行数据迭代的数据源
keyGenerator?: (item: Object): string => string // (Optional). ID generation function keyGenerator?: (item: Object): string => string // 需要进行数据迭代的数据源
): void ): void
interface IDataSource { interface IDataSource {
totalCount(): number; // Get total count of data totalCount(): number; // 获得数据总数
getData(index: number): any; // Get single data by index getData(index: number): any; // 获取索引值对应的数据
registerDataChangeListener(listener: DataChangeListener): void; // Register listener to listening data changes registerDataChangeListener(listener: DataChangeListener): void; // 注册数据改变的监听器
unregisterDataChangeListener(listener: DataChangeListener): void; // Unregister listener unregisterDataChangeListener(listener: DataChangeListener): void; // 注销数据改变的监听器
} }
interface DataChangeListener { interface DataChangeListener {
onDataReloaded(): void; // Called while data reloaded onDataReloaded(): void; // 重新加载数据时调用
onDataAdd(index: number): void; // Called while single data added onDataAdd(index: number): void; // 添加数据时调用
onDataMove(from: number, to: number): void; // Called while single data moved onDataMove(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用
onDataDelete(index: number): void; // Called while single data deleted onDataDelete(index: number): void; // 删除数据时调用
onDataChange(index: number): void; // Called while single data changed onDataChange(index: number): void; // 改变数据时调用
} }
``` ```
...@@ -177,7 +177,7 @@ class BasicDataSource implements IDataSource { ...@@ -177,7 +177,7 @@ class BasicDataSource implements IDataSource {
} }
class MyDataSource extends BasicDataSource { class MyDataSource extends BasicDataSource {
private dataArray: string[] = ['/path/image0', '/path/image1', '/path/image2', '/path/image3']; private dataArray: string[] = [];
public totalCount(): number { public totalCount(): number {
return this.dataArray.length; return this.dataArray.length;
...@@ -201,6 +201,12 @@ class MyDataSource extends BasicDataSource { ...@@ -201,6 +201,12 @@ class MyDataSource extends BasicDataSource {
@Entry @Entry
@Component @Component
struct MyComponent { struct MyComponent {
aboutToAppear() {
for (var i = 100; i >= 80; i--) {
this.data.pushData(`Hello ${i}`)
}
}
private data: MyDataSource = new MyDataSource(); private data: MyDataSource = new MyDataSource();
build() { build() {
...@@ -208,14 +214,17 @@ struct MyComponent { ...@@ -208,14 +214,17 @@ struct MyComponent {
LazyForEach(this.data, (item: string) => { LazyForEach(this.data, (item: string) => {
ListItem() { ListItem() {
Row() { Row() {
Image(item).width('30%').height(50) Text(item).fontSize(50)
Text(item).fontSize(20).margin({ left: 10 }) .onAppear(() => {
console.info("appear:" + item)
})
}.margin({ left: 10, right: 10 }) }.margin({ left: 10, right: 10 })
} }
.onClick(() => { .onClick(() => {
this.data.pushData('/path/image' + this.data.totalCount()); this.data.pushData(`Hello ${this.data.totalCount()}`);
}) })
}, (item: string) => item) }, item => item)
}.cachedCount(5)
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册