fix: 用户页面动态panel布局、收藏列表数据为空异常、收藏夹数据更新逻辑

This commit is contained in:
guozhigq
2023-07-31 11:10:35 +08:00
parent 66712963e0
commit e892452bcd
5 changed files with 27 additions and 12 deletions

View File

@ -67,7 +67,7 @@ class MyApp extends StatelessWidget {
),
navigatorObservers: [
VideoDetailPage.routeObserver,
SearchPage.routeObserver
SearchPage.routeObserver,
],
);
}),

View File

@ -17,7 +17,7 @@ class FavDetailData {
? json['medias']
.map<FavDetailItemData>((e) => FavDetailItemData.fromJson(e))
.toList()
: [FavDetailItemData()];
: [];
hasMore = json['has_more'];
}
}

View File

@ -3,6 +3,7 @@ import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/pages/dynamics/index.dart';
import 'package:pilipala/pages/home/index.dart';
import 'package:pilipala/pages/media/index.dart';
import 'package:pilipala/utils/feed_back.dart';
import 'package:pilipala/utils/storage.dart';
import './controller.dart';
@ -18,6 +19,7 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
final MainController _mainController = Get.put(MainController());
final HomeController _homeController = Get.put(HomeController());
final DynamicsController _dynamicController = Get.put(DynamicsController());
final MediaController _mediaController = Get.put(MediaController());
PageController? _pageController;
@ -87,6 +89,10 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
} else {
_dynamicController.flag = false;
}
if (currentPage is MediaPage) {
_mediaController.queryFavFolder();
}
}
@override

View File

@ -5,11 +5,21 @@ import 'package:pilipala/models/user/fav_folder.dart';
import 'package:pilipala/pages/media/index.dart';
import 'package:pilipala/utils/utils.dart';
class MediaPage extends StatelessWidget {
class MediaPage extends StatefulWidget {
const MediaPage({super.key});
@override
State<MediaPage> createState() => _MediaPageState();
}
class _MediaPageState extends State<MediaPage>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
super.build(context);
final MediaController mediaController = Get.put(MediaController());
Color primary = Theme.of(context).colorScheme.primary;
return Scaffold(

View File

@ -24,15 +24,14 @@ class _MemberDynamicPanelState extends State<MemberDynamicPanel>
@override
Widget build(BuildContext context) {
return Expanded(
child: LoadingMoreList<DynamicItemModel>(
ListConfig<DynamicItemModel>(
sourceList: source,
itemBuilder: (BuildContext c, DynamicItemModel item, int index) {
return DynamicPanel(item: item);
},
indicatorBuilder: _buildIndicator,
),
super.build(context);
return LoadingMoreList<DynamicItemModel>(
ListConfig<DynamicItemModel>(
sourceList: source,
itemBuilder: (BuildContext c, DynamicItemModel item, int index) {
return DynamicPanel(item: item);
},
indicatorBuilder: _buildIndicator,
),
);
}