mod: 动态页面搜索重置

This commit is contained in:
guozhigq
2023-07-11 13:44:40 +08:00
parent e5a05c22ea
commit 88b54c5c2d
2 changed files with 62 additions and 15 deletions

View File

@ -11,7 +11,7 @@ import 'package:pilipala/utils/utils.dart';
class DynamicsController extends GetxController { class DynamicsController extends GetxController {
int page = 1; int page = 1;
String? offset = ''; String? offset = '';
RxList<DynamicItemModel>? dynamicsList = [DynamicItemModel()].obs; RxList<DynamicItemModel> dynamicsList = [DynamicItemModel()].obs;
Rx<DynamicsType> dynamicsType = DynamicsType.values[0].obs; Rx<DynamicsType> dynamicsType = DynamicsType.values[0].obs;
RxString dynamicsTypeLabel = '全部'.obs; RxString dynamicsTypeLabel = '全部'.obs;
final ScrollController scrollController = ScrollController(); final ScrollController scrollController = ScrollController();
@ -153,4 +153,14 @@ class DynamicsController extends GetxController {
duration: const Duration(milliseconds: 500), curve: Curves.easeInOut); duration: const Duration(milliseconds: 500), curve: Curves.easeInOut);
} }
} }
// 重置搜索
void resetSearch() {
mid.value = -1;
dynamicsType.value = DynamicsType.values[0];
initialValue.value = 1;
SmartDialog.showToast('还原默认加载', alignment: Alignment.topCenter);
dynamicsList.value = [DynamicItemModel()];
queryFollowDynamic();
}
} }

View File

@ -3,10 +3,14 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/common/skeleton/dynamic_card.dart'; import 'package:pilipala/common/skeleton/dynamic_card.dart';
import 'package:pilipala/common/widgets/http_error.dart'; import 'package:pilipala/common/widgets/http_error.dart';
import 'package:pilipala/common/widgets/network_img_layer.dart';
import 'package:pilipala/models/common/dynamics_type.dart'; import 'package:pilipala/models/common/dynamics_type.dart';
import 'package:pilipala/models/dynamics/result.dart'; import 'package:pilipala/models/dynamics/result.dart';
import 'package:pilipala/pages/mine/index.dart';
import 'package:pilipala/utils/storage.dart';
import 'controller.dart'; import 'controller.dart';
import 'widgets/dynamic_panel.dart'; import 'widgets/dynamic_panel.dart';
@ -24,6 +28,8 @@ class _DynamicsPageState extends State<DynamicsPage>
final DynamicsController _dynamicsController = Get.put(DynamicsController()); final DynamicsController _dynamicsController = Get.put(DynamicsController());
Future? _futureBuilderFuture; Future? _futureBuilderFuture;
bool _isLoadingMore = false; bool _isLoadingMore = false;
Box userInfoCache = GStrorage.userInfo;
@override @override
bool get wantKeepAlive => true; bool get wantKeepAlive => true;
@ -55,7 +61,7 @@ class _DynamicsPageState extends State<DynamicsPage>
scrolledUnderElevation: 0, scrolledUnderElevation: 0,
titleSpacing: 0, titleSpacing: 0,
title: SizedBox( title: SizedBox(
height: 36, height: 34,
child: Stack( child: Stack(
children: [ children: [
Row( Row(
@ -123,7 +129,7 @@ class _DynamicsPageState extends State<DynamicsPage>
// .fontSize), // .fontSize),
// ), // ),
}, },
padding: 16.0, padding: 13.0,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Theme.of(context) color: Theme.of(context)
.colorScheme .colorScheme
@ -135,7 +141,7 @@ class _DynamicsPageState extends State<DynamicsPage>
color: Theme.of(context).colorScheme.background, color: Theme.of(context).colorScheme.background,
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
border: Border.all( border: Border.all(
width: 1.2, width: 1,
color: Theme.of(context) color: Theme.of(context)
.colorScheme .colorScheme
.surfaceVariant .surfaceVariant
@ -152,22 +158,53 @@ class _DynamicsPageState extends State<DynamicsPage>
], ],
), ),
Positioned( Positioned(
right: 10, right: 4,
top: 0, top: 0,
bottom: 0, bottom: 0,
child: IconButton( child: IconButton(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
onPressed: () { onPressed: () => _dynamicsController.resetSearch(),
_dynamicsController.mid.value = -1; icon: const Icon(Icons.history, size: 21),
_dynamicsController.dynamicsType.value =
DynamicsType.values[0];
SmartDialog.showToast('还原默认加载',
alignment: Alignment.topCenter);
_dynamicsController.queryFollowDynamic();
},
icon: const Icon(Icons.history),
), ),
) ),
Positioned(
left: 10,
top: 0,
bottom: 0,
child: Align(
alignment: Alignment.center,
child: userInfoCache.get('userInfoCache') != null
? GestureDetector(
onTap: () => showModalBottomSheet(
context: context,
builder: (_) => const SizedBox(
height: 450,
child: MinePage(),
),
clipBehavior: Clip.hardEdge,
isScrollControlled: true,
),
child: NetworkImgLayer(
type: 'avatar',
width: 30,
height: 30,
src: userInfoCache.get('userInfoCache').face,
),
)
: IconButton(
onPressed: () => showModalBottomSheet(
context: context,
builder: (_) => const SizedBox(
height: 450,
child: MinePage(),
),
clipBehavior: Clip.hardEdge,
isScrollControlled: true,
),
icon: const Icon(CupertinoIcons.person, size: 22),
),
),
),
], ],
), ),
), ),