fix: issues #166

This commit is contained in:
guozhigq
2023-10-14 15:46:03 +08:00
parent 856d699fd7
commit 7ecfbac786
5 changed files with 46 additions and 21 deletions

View File

@ -2,6 +2,7 @@ import 'package:get/get.dart';
import 'package:pilipala/http/member.dart';
class ArchiveController extends GetxController {
ArchiveController(this.mid);
int? mid;
int pn = 1;
int count = 0;
@ -15,7 +16,8 @@ class ArchiveController extends GetxController {
@override
void onInit() {
super.onInit();
mid = int.parse(Get.parameters['mid']!);
mid ??= int.parse(Get.parameters['mid']!);
print('🐶🐶: $mid');
currentOrder.value = orderList.first;
}

View File

@ -5,10 +5,12 @@ import 'package:loading_more_list/loading_more_list.dart';
import 'package:pilipala/common/widgets/video_card_h.dart';
import 'package:pilipala/models/member/archive.dart';
import 'package:pilipala/pages/member/archive/index.dart';
import 'package:pilipala/utils/utils.dart';
import 'package:pull_to_refresh_notification/pull_to_refresh_notification.dart';
class ArchivePanel extends StatefulWidget {
const ArchivePanel({super.key});
final int? mid;
const ArchivePanel({super.key, this.mid});
@override
State<ArchivePanel> createState() => _ArchivePanelState();
@ -17,13 +19,21 @@ class ArchivePanel extends StatefulWidget {
class _ArchivePanelState extends State<ArchivePanel>
with AutomaticKeepAliveClientMixin {
DateTime lastRefreshTime = DateTime.now();
late final LoadMoreListSource source = LoadMoreListSource();
final ArchiveController _archiveController =
Get.put(ArchiveController(), tag: Get.arguments['heroTag']);
late final LoadMoreListSource source;
late final ArchiveController _archiveController;
@override
bool get wantKeepAlive => true;
@override
void initState() {
super.initState();
print('🐶🐶: ${widget.mid}');
_archiveController = Get.put(ArchiveController(widget.mid),
tag: Utils.makeHeroTag(widget.mid));
source = LoadMoreListSource(_archiveController);
}
@override
Widget build(BuildContext context) {
super.build(context);
@ -193,16 +203,16 @@ class _ArchivePanelState extends State<ArchivePanel>
}
class LoadMoreListSource extends LoadingMoreBase<VListItemModel> {
final ArchiveController _archiveController =
Get.put(ArchiveController(), tag: Get.arguments['heroTag']);
late ArchiveController ctr;
LoadMoreListSource(this.ctr);
bool forceRefresh = false;
@override
Future<bool> loadData([bool isloadMoreAction = false]) async {
bool isSuccess = false;
var res = await _archiveController.getMemberArchive();
var res = await ctr.getMemberArchive();
if (res['status']) {
if (_archiveController.pn == 2) {
if (ctr.pn == 2) {
clear();
}
addAll(res['data'].list.vlist);

View File

@ -2,6 +2,7 @@ import 'package:get/get.dart';
import 'package:pilipala/http/member.dart';
class MemberDynamicPanelController extends GetxController {
MemberDynamicPanelController(this.mid);
int? mid;
String offset = '';
int count = 0;
@ -9,7 +10,7 @@ class MemberDynamicPanelController extends GetxController {
@override
void onInit() {
super.onInit();
mid = int.parse(Get.parameters['mid']!);
mid ??= int.parse(Get.parameters['mid']!);
}
Future getMemberDynamic() async {

View File

@ -4,11 +4,13 @@ import 'package:get/get.dart';
import 'package:loading_more_list/loading_more_list.dart';
import 'package:pilipala/models/dynamics/result.dart';
import 'package:pilipala/pages/dynamics/widgets/dynamic_panel.dart';
import 'package:pilipala/utils/utils.dart';
import 'controller.dart';
class MemberDynamicPanel extends StatefulWidget {
const MemberDynamicPanel({super.key});
final int? mid;
const MemberDynamicPanel({super.key, this.mid});
@override
State<MemberDynamicPanel> createState() => _MemberDynamicPanelState();
@ -17,11 +19,20 @@ class MemberDynamicPanel extends StatefulWidget {
class _MemberDynamicPanelState extends State<MemberDynamicPanel>
with AutomaticKeepAliveClientMixin {
DateTime lastRefreshTime = DateTime.now();
late final LoadMoreListSource source = LoadMoreListSource();
late final LoadMoreListSource source;
late final MemberDynamicPanelController _dynamicController;
@override
bool get wantKeepAlive => true;
@override
void initState() {
super.initState();
_dynamicController = Get.put(MemberDynamicPanelController(widget.mid),
tag: Utils.makeHeroTag(widget.mid));
source = LoadMoreListSource(_dynamicController);
}
@override
Widget build(BuildContext context) {
super.build(context);
@ -118,13 +129,13 @@ class _MemberDynamicPanelState extends State<MemberDynamicPanel>
}
class LoadMoreListSource extends LoadingMoreBase<DynamicItemModel> {
final _dynamicController =
Get.put(MemberDynamicPanelController(), tag: Get.arguments['heroTag']);
late MemberDynamicPanelController ctr;
LoadMoreListSource(this.ctr);
@override
Future<bool> loadData([bool isloadMoreAction = false]) async {
bool isSuccess = false;
var res = await _dynamicController.getMemberDynamic();
var res = await ctr.getMemberDynamic();
if (res['status']) {
addAll(res['data'].items);
}

View File

@ -27,12 +27,13 @@ class _MemberPageState extends State<MemberPage>
final ScrollController _extendNestCtr = ScrollController();
late TabController _tabController;
final StreamController<bool> appbarStream = StreamController<bool>();
late int mid;
@override
void initState() {
super.initState();
heroTag =
Get.arguments['heroTag'] ?? Utils.makeHeroTag(Get.parameters['mid']);
mid = int.parse(Get.parameters['mid']!);
heroTag = Get.arguments['heroTag'] ?? Utils.makeHeroTag(mid);
_memberController = Get.put(MemberController(), tag: heroTag);
_tabController = TabController(length: 3, vsync: this, initialIndex: 2);
_futureBuilderFuture = _memberController.getInfo();
@ -372,10 +373,10 @@ class _MemberPageState extends State<MemberPage>
Expanded(
child: TabBarView(
controller: _tabController,
children: const [
Text('主页'),
MemberDynamicPanel(),
ArchivePanel(),
children: [
const Text('主页'),
MemberDynamicPanel(mid: mid),
ArchivePanel(mid: mid),
],
))
],