介绍
本示例介绍使用ArkUIstack 组件实现多层级瀑布流。该场景多用于购物、资讯类应用。
效果图预览
使用说明
- 加载完成后显示轮播图可以左右滑动。
实现思路
SwiperDataSource,实现IDataSource接口的对象,用于LazyForEach加载数据。源码参考SwiperData.ets
/**
* 实现IDataSource接口的对象,用于轮播图组件加载数据
*/
class BasicDataSource implements IDataSource {
private listeners: DataChangeListener[] = [];
private originDataArray: SwiperData[] = [];
public totalCount(): number {
return 0;
}
public getData(index: number): SwiperData {
return this.originDataArray[index];
}
/**
* 该方法为框架侧调用,为LazyForEach组件向其数据源处添加listener监听
*/
registerDataChangeListener(listener: DataChangeListener): void {
if (this.listeners.indexOf(listener) < 0) {
console.info('add listener');
this.listeners.push(listener);
}
}
/**
* 该方法为框架侧调用,为对应的LazyForEach组件在数据源处去除listener监听
*/
unregisterDataChangeListener(lis