mod: 动态页面搜索重置
This commit is contained in:
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user