add loop scroll

This commit is contained in:
hi80482 2020-07-29 18:17:23 +08:00 committed by GitHub
parent cefd5bfe61
commit 2f01938415
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -301,29 +301,49 @@ class RomListPage(Page):
self._PsIndex -= self._ScrollStep self._PsIndex -= self._ScrollStep
if self._PsIndex < 0: if self._PsIndex < 0:
self._PsIndex = 0 # self._PsIndex = 0
dy = tmp - self._PsIndex self._PsIndex = len(self._MyList) -1 # to end
# dy = tmp - self._PsIndex
dy = abs(tmp - self._PsIndex)
cur_li = self._MyList[self._PsIndex] cur_li = self._MyList[self._PsIndex]
if cur_li._PosY < 0: if cur_li._PosY < 0:
for i in range(0, len(self._MyList)): for i in range(0, len(self._MyList)):
self._MyList[i]._PosY += self._MyList[i]._Height * dy self._MyList[i]._PosY += self._MyList[i]._Height * dy
self._Scrolled += dy self._Scrolled += dy
# loop scroll, to end
# dy - 5: 6 items on screen, 6 - 1 = 5
if self._PsIndex == len(self._MyList) - 1:
for i in range(0, len(self._MyList)):
self._MyList[i]._PosY -= self._MyList[i]._Height * (dy - 5)
self._Scrolled -= dy
def ScrollDown(self): def ScrollDown(self):
if len(self._MyList) == 0: if len(self._MyList) == 0:
return return
tmp = self._PsIndex tmp = self._PsIndex
self._PsIndex +=self._ScrollStep self._PsIndex +=self._ScrollStep
if self._PsIndex >= len(self._MyList):
self._PsIndex = len(self._MyList) -1
dy = self._PsIndex - tmp if self._PsIndex >= len(self._MyList):
# self._PsIndex = len(self._MyList) -1
self._PsIndex = 0 # to first
# dy = self._PsIndex - tmp
dy = abs(self._PsIndex - tmp)
cur_li = self._MyList[self._PsIndex] cur_li = self._MyList[self._PsIndex]
if cur_li._PosY + cur_li._Height > self._Height: if cur_li._PosY + cur_li._Height > self._Height:
for i in range(0,len(self._MyList)): for i in range(0,len(self._MyList)):
self._MyList[i]._PosY -= self._MyList[i]._Height * dy self._MyList[i]._PosY -= self._MyList[i]._Height * dy
self._Scrolled -= dy self._Scrolled -= dy
# loop scroll, to first
# dy - 5: 6 items on screen, 6 - 1 = 5
if self._PsIndex == 0:
for i in range(0, len(self._MyList)):
self._MyList[i]._PosY += self._MyList[i]._Height * (dy - 5)
self._Scrolled += dy
def SyncScroll(self): def SyncScroll(self):
## ##
if self._Scrolled == 0: if self._Scrolled == 0: