diff --git a/arkoala-arkts/arkui/src/LazyForEach.ts b/arkoala-arkts/arkui/src/LazyForEach.ts index 01ffee274e7600f4e624a5088811bab3a0b073b1..fdd7efa633067e90e8fe857da3bd7eaa87c32d03 100644 --- a/arkoala-arkts/arkui/src/LazyForEach.ts +++ b/arkoala-arkts/arkui/src/LazyForEach.ts @@ -49,7 +49,7 @@ export type DataChangeListener = Object } class LazyForEachManager { - static isDummy: boolean = true + static isDummy: boolean = false // Special pointer to mark that more elements needed. static specialPointer: pointer = 1 static OnRangeUpdate(parent: pointer, totalCount: int32, updater: (currentIndex: int32, currentMark: pointer) => void) { @@ -81,7 +81,7 @@ export function LazyForEach(dataSource: IDataSource, itemGenerator: (item: T, index: number) => void, keyGenerator?: (item: T, index: number) => string, ) { - let current = rememberMutableState(0) + let current = rememberMutableState(-1) let mark = rememberMutableState(nullptr) let version = rememberMutableState(0) console.log(`LazyForEach current=${current.value} version=${version.value} mark=${mark.value}`) @@ -102,18 +102,31 @@ export function LazyForEach(dataSource: IDataSource, let markUp = mark.value let markDown = mark.value - const needFillUp = remember(() => () => { + // const needFillUp = remember(() => () => { + // let more = LazyForEachManager.NeedMoreElements(parentPtr, markUp, 0) + // if (more == nullptr) return false + // markUp = more + // return true + // }) + // const needFillDown = remember(() => () => { + // let more = LazyForEachManager.NeedMoreElements(parentPtr, markDown, 1) + // if (more == nullptr) return false + // markDown = more + // return true + // }) + + const needFillUp = () => { let more = LazyForEachManager.NeedMoreElements(parentPtr, markUp, 0) if (more == nullptr) return false markUp = more return true - }) - const needFillDown = remember(() => () => { + } + const needFillDown = () => { let more = LazyForEachManager.NeedMoreElements(parentPtr, markDown, 1) if (more == nullptr) return false markDown = more return true - }) + } let indexUp = current.value let indexDown = current.value