mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: dyn tab
opt: reload Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -45,7 +45,7 @@ class PBadge extends StatelessWidget {
|
|||||||
// 前景色
|
// 前景色
|
||||||
Color color = t.onPrimary;
|
Color color = t.onPrimary;
|
||||||
// 边框色
|
// 边框色
|
||||||
Color? borderColor;
|
Color borderColor = Colors.transparent;
|
||||||
if (type == 'gray') {
|
if (type == 'gray') {
|
||||||
bgColor = Colors.black45;
|
bgColor = Colors.black45;
|
||||||
color = Colors.white;
|
color = Colors.white;
|
||||||
@@ -77,7 +77,7 @@ class PBadge extends StatelessWidget {
|
|||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: br,
|
borderRadius: br,
|
||||||
color: bgColor,
|
color: bgColor,
|
||||||
border: borderColor != null ? Border.all(color: borderColor) : null,
|
border: Border.all(color: borderColor),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
text!,
|
text!,
|
||||||
|
|||||||
@@ -499,4 +499,10 @@ https://api.bilibili.com/x/v2/reply/reply?oid=$oid&pn=1&ps=20&root=${rpid ?? rep
|
|||||||
SmartDialog.showToast(res['msg']);
|
SmartDialog.showToast(res['msg']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future onReload() {
|
||||||
|
scrollController.jumpToTop();
|
||||||
|
return super.onReload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,10 +171,12 @@ class DynamicsController extends GetxController
|
|||||||
}
|
}
|
||||||
|
|
||||||
onSelectUp(mid) async {
|
onSelectUp(mid) async {
|
||||||
if (mid == this.mid.value) {
|
if (this.mid == mid) {
|
||||||
this.mid.refresh();
|
tabController.index = (mid == -1 ? 0 : 4);
|
||||||
|
controller.onReload();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.mid.value = mid;
|
this.mid.value = mid;
|
||||||
tabController.index = (mid == -1 ? 0 : 4);
|
tabController.index = (mid == -1 ? 0 : 4);
|
||||||
}
|
}
|
||||||
@@ -194,9 +196,10 @@ class DynamicsController extends GetxController
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOr<void> toTopOrRefresh() {
|
FutureOr<void> toTopOrRefresh() {
|
||||||
if (scrollController.hasClients && controller.scrollController.hasClients) {
|
final ctr = controller;
|
||||||
|
if (scrollController.hasClients && ctr.scrollController.hasClients) {
|
||||||
if (scrollController.position.pixels == 0 &&
|
if (scrollController.position.pixels == 0 &&
|
||||||
controller.scrollController.position.pixels == 0) {
|
ctr.scrollController.position.pixels == 0) {
|
||||||
return onRefresh();
|
return onRefresh();
|
||||||
} else {
|
} else {
|
||||||
animateToTop();
|
animateToTop();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:PiliPlus/http/msg.dart';
|
|||||||
import 'package:PiliPlus/models/dynamics/result.dart';
|
import 'package:PiliPlus/models/dynamics/result.dart';
|
||||||
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||||
import 'package:PiliPlus/pages/main/controller.dart';
|
import 'package:PiliPlus/pages/main/controller.dart';
|
||||||
|
import 'package:PiliPlus/utils/extension.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';
|
||||||
|
|
||||||
@@ -62,4 +63,10 @@ class DynamicsTabController
|
|||||||
SmartDialog.showToast(res['msg']);
|
SmartDialog.showToast(res['msg']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future onReload() {
|
||||||
|
scrollController.jumpToTop();
|
||||||
|
return super.onReload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,11 @@ class _DynamicsTabPageState
|
|||||||
super.initState();
|
super.initState();
|
||||||
if (widget.dynamicsType == 'up') {
|
if (widget.dynamicsType == 'up') {
|
||||||
_listener = dynamicsController.mid.listen((mid) {
|
_listener = dynamicsController.mid.listen((mid) {
|
||||||
controller.mid = mid;
|
if (mid != -1) {
|
||||||
controller.scrollController.jumpTo(0);
|
controller
|
||||||
controller.onReload();
|
..mid = mid
|
||||||
|
..onReload();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
dynamicsWaterfallFlow = GStorage.setting
|
dynamicsWaterfallFlow = GStorage.setting
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
import 'package:PiliPlus/models/common/dynamics_type.dart';
|
import 'package:PiliPlus/models/common/dynamics_type.dart';
|
||||||
import 'package:PiliPlus/models/common/up_panel_position.dart';
|
import 'package:PiliPlus/models/common/up_panel_position.dart';
|
||||||
import 'package:PiliPlus/pages/dynamics/create_dyn_panel.dart';
|
import 'package:PiliPlus/pages/dynamics/create_dyn_panel.dart';
|
||||||
import 'package:PiliPlus/pages/dynamics/tab/controller.dart';
|
|
||||||
import 'package:easy_debounce/easy_throttle.dart';
|
import 'package:easy_debounce/easy_throttle.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:PiliPlus/utils/feed_back.dart';
|
|
||||||
import 'package:PiliPlus/utils/storage.dart';
|
import 'package:PiliPlus/utils/storage.dart';
|
||||||
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
@@ -161,9 +159,7 @@ class _DynamicsPageState extends State<DynamicsPage>
|
|||||||
DynamicsType.values.map((e) => Tab(text: e.labels)).toList(),
|
DynamicsType.values.map((e) => Tab(text: e.labels)).toList(),
|
||||||
onTap: (index) {
|
onTap: (index) {
|
||||||
if (!_dynamicsController.tabController.indexIsChanging) {
|
if (!_dynamicsController.tabController.indexIsChanging) {
|
||||||
feedBack();
|
_dynamicsController.animateToTop();
|
||||||
Get.find<DynamicsTabController>(tag: tabsConfig[index]['tag'])
|
|
||||||
.animateToTop();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -172,4 +172,10 @@ class FavDetailController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future onReload() {
|
||||||
|
scrollController.jumpToTop();
|
||||||
|
return super.onReload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,4 +192,10 @@ class HistoryController extends MultiSelectController<HistoryData, HisListItem>
|
|||||||
tabController?.dispose();
|
tabController?.dispose();
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future onReload() {
|
||||||
|
scrollController.jumpToTop();
|
||||||
|
return super.onReload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -233,4 +233,10 @@ class LaterController extends MultiSelectController<Map, HotVideoItemModel> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future onReload() {
|
||||||
|
scrollController.jumpToTop();
|
||||||
|
return super.onReload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,6 +132,8 @@ class _SearchResultPageState extends State<SearchResultPage>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
|
child: Material(
|
||||||
|
color: Colors.transparent,
|
||||||
child: tabBarView(
|
child: tabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: SearchType.values
|
children: SearchType.values
|
||||||
@@ -145,6 +147,7 @@ class _SearchResultPageState extends State<SearchResultPage>
|
|||||||
.toList(),
|
.toList(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ extension ScrollControllerExt on ScrollController {
|
|||||||
duration: const Duration(milliseconds: 500), curve: Curves.easeInOut);
|
duration: const Duration(milliseconds: 500), curve: Curves.easeInOut);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void jumpToTop() {
|
||||||
|
if (!hasClients) return;
|
||||||
|
jumpTo(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension IterableExt<T> on Iterable<T>? {
|
extension IterableExt<T> on Iterable<T>? {
|
||||||
|
|||||||
Reference in New Issue
Block a user