generated from dellevin/template
fix:底部导航栏和滑动的冲突
This commit is contained in:
@@ -28,6 +28,7 @@ class _BookTabPageState extends State<BookTabPage> {
|
||||
late ScrollController _scrollController;
|
||||
AppProvider? _provider;
|
||||
int _lastScrollSignal = 0;
|
||||
int _prevBookCount = -1;
|
||||
|
||||
static const _statusMap = {0: 'read', 1: 'reading', 2: 'want_to_read'};
|
||||
|
||||
@@ -63,8 +64,13 @@ class _BookTabPageState extends State<BookTabPage> {
|
||||
}
|
||||
}
|
||||
|
||||
// 数据变化时刷新列表(排序/评分/新增等)
|
||||
_loadFirst();
|
||||
// 仅在数据实际变化时刷新列表,避免底部导航栏显隐等UI变化误触发重载
|
||||
final statusChanged = provider.bookStatusIndex != _lastStatusIndex;
|
||||
final countChanged = provider.books.length != _prevBookCount;
|
||||
if (statusChanged || countChanged) {
|
||||
_prevBookCount = provider.books.length;
|
||||
_loadFirst();
|
||||
}
|
||||
}
|
||||
|
||||
void _onScroll() {
|
||||
|
||||
@@ -27,6 +27,8 @@ class _MovieTabPageState extends State<MovieTabPage> {
|
||||
late ScrollController _scrollController;
|
||||
AppProvider? _provider;
|
||||
int _lastScrollSignal = 0;
|
||||
int _prevMovieCount = -1;
|
||||
int _prevLayoutStyle = -1;
|
||||
|
||||
static const _statusMap = {0: 'watched', 1: 'watching', 2: 'want_to_watch'};
|
||||
|
||||
@@ -61,8 +63,15 @@ class _MovieTabPageState extends State<MovieTabPage> {
|
||||
}
|
||||
}
|
||||
|
||||
// 数据变化时刷新列表(排序/评分/新增等)
|
||||
_loadFirst();
|
||||
// 仅在数据或布局实际变化时刷新列表,避免底部导航栏显隐等UI变化误触发重载
|
||||
final statusChanged = provider.movieStatusIndex != _lastStatusIndex;
|
||||
final layoutChanged = provider.movieLayoutStyle != _prevLayoutStyle;
|
||||
final countChanged = provider.movies.length != _prevMovieCount;
|
||||
if (statusChanged || layoutChanged || countChanged) {
|
||||
_prevLayoutStyle = provider.movieLayoutStyle;
|
||||
_prevMovieCount = provider.movies.length;
|
||||
_loadFirst();
|
||||
}
|
||||
}
|
||||
|
||||
void _onScroll() {
|
||||
|
||||
@@ -25,6 +25,7 @@ class _NoteTabPageState extends State<NoteTabPage> {
|
||||
int _layoutStyle = 0;
|
||||
bool _initialized = false;
|
||||
int _lastScrollSignal = 0;
|
||||
int _prevNoteCount = -1;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -57,8 +58,12 @@ class _NoteTabPageState extends State<NoteTabPage> {
|
||||
}
|
||||
}
|
||||
|
||||
// 数据变化时刷新列表(排序/评分/新增等)
|
||||
_loadFirst();
|
||||
// 仅在数据实际变化时刷新列表,避免底部导航栏显隐等UI变化误触发重载
|
||||
final countChanged = provider.notes.length != _prevNoteCount;
|
||||
if (countChanged) {
|
||||
_prevNoteCount = provider.notes.length;
|
||||
_loadFirst();
|
||||
}
|
||||
}
|
||||
|
||||
void _onScroll() {
|
||||
|
||||
@@ -135,7 +135,7 @@ class UserPrefs {
|
||||
bool get showSidebarTags => prefs.getBool('showSidebarTags') ?? true;
|
||||
Future<bool> setShowSidebarTags(bool value) => prefs.setBool('showSidebarTags', value);
|
||||
|
||||
bool get showSidebarMdReader => prefs.getBool('showSidebarMdReader') ?? true;
|
||||
bool get showSidebarMdReader => prefs.getBool('showSidebarMdReader') ?? false;
|
||||
Future<bool> setShowSidebarMdReader(bool value) => prefs.setBool('showSidebarMdReader', value);
|
||||
|
||||
bool get showSidebarEpub => prefs.getBool('showSidebarEpub') ?? true;
|
||||
|
||||
Reference in New Issue
Block a user