From c5bafb455b918f4ecf28efe986bbdba7ec774a32 Mon Sep 17 00:00:00 2001 From: niuhuan Date: Sun, 21 Nov 2021 21:18:23 +0800 Subject: [PATCH] option: del page anime --- lib/screens/InitScreen.dart | 2 + lib/screens/SettingsScreen.dart | 2 + lib/screens/components/ImageReader.dart | 69 +++++++++++++++++-------- 3 files changed, 51 insertions(+), 22 deletions(-) diff --git a/lib/screens/InitScreen.dart b/lib/screens/InitScreen.dart index a6abb2d..2d9cc9c 100644 --- a/lib/screens/InitScreen.dart +++ b/lib/screens/InitScreen.dart @@ -12,6 +12,7 @@ import 'package:pikapika/basic/config/DownloadThreadCount.dart'; import 'package:pikapika/basic/config/FullScreenAction.dart'; import 'package:pikapika/basic/config/FullScreenUI.dart'; import 'package:pikapika/basic/config/KeyboardController.dart'; +import 'package:pikapika/basic/config/NoAnimation.dart'; import 'package:pikapika/basic/config/PagerAction.dart'; import 'package:pikapika/basic/config/Platform.dart'; import 'package:pikapika/basic/config/Proxy.dart'; @@ -70,6 +71,7 @@ class _InitScreenState extends State { await initAndroidSecureFlag(); await initDownloadThreadCount(); await initConvertToPNG(); + await initNoAnimation(); await initVersion(); autoCheckNewVersion(); // 登录, 如果token失效重新登录, 网络不好的时候可能需要1分钟 diff --git a/lib/screens/SettingsScreen.dart b/lib/screens/SettingsScreen.dart index 3fa3606..ba586fd 100644 --- a/lib/screens/SettingsScreen.dart +++ b/lib/screens/SettingsScreen.dart @@ -14,6 +14,7 @@ import 'package:pikapika/basic/config/DownloadThreadCount.dart'; import 'package:pikapika/basic/config/FullScreenAction.dart'; import 'package:pikapika/basic/config/FullScreenUI.dart'; import 'package:pikapika/basic/config/KeyboardController.dart'; +import 'package:pikapika/basic/config/NoAnimation.dart'; import 'package:pikapika/basic/config/PagerAction.dart'; import 'package:pikapika/basic/config/ReaderDirection.dart'; import 'package:pikapika/basic/config/ReaderType.dart'; @@ -45,6 +46,7 @@ class SettingsScreen extends StatelessWidget { fullScreenActionSetting(), volumeControllerSetting(), keyboardControllerSetting(), + noAnimationSetting(), Divider(), shadowCategoriesSetting(), pagerActionSetting(), diff --git a/lib/screens/components/ImageReader.dart b/lib/screens/components/ImageReader.dart index c53b868..91d962f 100644 --- a/lib/screens/components/ImageReader.dart +++ b/lib/screens/components/ImageReader.dart @@ -13,6 +13,7 @@ import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/config/FullScreenAction.dart'; import 'package:pikapika/basic/config/GalleryPreloadCount.dart'; import 'package:pikapika/basic/config/KeyboardController.dart'; +import 'package:pikapika/basic/config/NoAnimation.dart'; import 'package:pikapika/basic/config/ReaderDirection.dart'; import 'package:pikapika/basic/config/ReaderType.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; @@ -274,26 +275,36 @@ class _WebToonReaderState extends State<_WebToonReader> { switch ("$event") { case "UP": if (_current > 1) { - if (DateTime.now().millisecondsSinceEpoch < _controllerTime) { - return; + if (noAnimation()) { + _itemScrollController.jumpTo( + index: _current - 2, // 减1 当前position 再减少1 前一个 + ); + } else { + if (DateTime.now().millisecondsSinceEpoch < _controllerTime) { + return; + } + _controllerTime = DateTime.now().millisecondsSinceEpoch + 400; + _itemScrollController.scrollTo( + index: _current - 2, // 减1 当前position 再减少1 前一个 + duration: Duration(milliseconds: 400), + ); } - _controllerTime = DateTime.now().millisecondsSinceEpoch + 400; - _itemScrollController.scrollTo( - index: _current - 2, // 减1 当前position 再减少1 前一个 - duration: Duration(milliseconds: 400), - ); } break; case "DOWN": if (_current < widget.struct.images.length) { - if (DateTime.now().millisecondsSinceEpoch < _controllerTime) { - return; + if (noAnimation()) { + _itemScrollController.jumpTo(index: _current); + } else { + if (DateTime.now().millisecondsSinceEpoch < _controllerTime) { + return; + } + _controllerTime = DateTime.now().millisecondsSinceEpoch + 400; + _itemScrollController.scrollTo( + index: _current, + duration: Duration(milliseconds: 400), + ); } - _controllerTime = DateTime.now().millisecondsSinceEpoch + 400; - _itemScrollController.scrollTo( - index: _current, - duration: Duration(milliseconds: 400), - ); } break; } @@ -622,18 +633,32 @@ class _GalleryReaderState extends State<_GalleryReader> { switch ("$event") { case "UP": if (_current > 1) { - _pageController.previousPage( - duration: Duration(milliseconds: 400), - curve: Curves.ease, - ); + if (noAnimation()) { + _pageController.previousPage( + duration: Duration(milliseconds: 1), + curve: Curves.ease, + ); + } else { + _pageController.previousPage( + duration: Duration(milliseconds: 400), + curve: Curves.ease, + ); + } } break; case "DOWN": if (_current < widget.struct.images.length) { - _pageController.nextPage( - duration: Duration(milliseconds: 400), - curve: Curves.ease, - ); + if (noAnimation()) { + _pageController.nextPage( + duration: Duration(milliseconds: 1), + curve: Curves.ease, + ); + } else { + _pageController.nextPage( + duration: Duration(milliseconds: 400), + curve: Curves.ease, + ); + } } break; }