From fe601a06961139407305aa511c66636c9d60d2a6 Mon Sep 17 00:00:00 2001 From: hi80482 <66435094+hi80482@users.noreply.github.com> Date: Wed, 29 Jul 2020 18:23:35 +0800 Subject: [PATCH] add loop scroll --- sys.py/UI/Emulator/fav_list_page.py | 36 ++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/sys.py/UI/Emulator/fav_list_page.py b/sys.py/UI/Emulator/fav_list_page.py index 8588050..70d230f 100644 --- a/sys.py/UI/Emulator/fav_list_page.py +++ b/sys.py/UI/Emulator/fav_list_page.py @@ -267,28 +267,48 @@ class FavListPage(Page): self._PsIndex -= self._ScrollStep if self._PsIndex < 0: - self._PsIndex = 0 - dy = tmp - self._PsIndex + # self._PsIndex = 0 + self._PsIndex = len(self._MyList) -1 # to end + + # dy = tmp - self._PsIndex + dy = abs(tmp - self._PsIndex) cur_li = self._MyList[self._PsIndex] if cur_li._PosY < 0: for i in range(0, len(self._MyList)): - self._MyList[i]._PosY += self._MyList[i]._Height*dy - self._Scrolled +=dy + self._MyList[i]._PosY += self._MyList[i]._Height * 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): if len(self._MyList) == 0: return tmp = self._PsIndex self._PsIndex +=self._ScrollStep + if self._PsIndex >= len(self._MyList): - self._PsIndex = len(self._MyList) -1 + # self._PsIndex = len(self._MyList) -1 + self._PsIndex = 0 # to first - dy = self._PsIndex - tmp + # dy = self._PsIndex - tmp + dy = abs(self._PsIndex - tmp) 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)): - self._MyList[i]._PosY -= self._MyList[i]._Height*dy + self._MyList[i]._PosY -= self._MyList[i]._Height * 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): ##