mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: memberpage: anim to top
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -350,10 +350,8 @@ class MemberHttp {
|
||||
'web_location': 1550101,
|
||||
'order_avoided': orderAvoided,
|
||||
'dm_img_list': '[]',
|
||||
'dm_img_str': dmImgStr.substring(
|
||||
0, (dmImgStr.length - 2).clamp(0, dmImgStr.length - 1)),
|
||||
'dm_cover_img_str': dmCoverImgStr.substring(
|
||||
0, (dmCoverImgStr.length - 2).clamp(0, dmCoverImgStr.length - 1)),
|
||||
'dm_img_str': dmImgStr,
|
||||
'dm_cover_img_str': dmCoverImgStr,
|
||||
'dm_img_inter': '{"ds":[],"wh":[0,0,0],"of":[0,0,0]}',
|
||||
});
|
||||
var res = await Request().get(
|
||||
@@ -390,10 +388,8 @@ class MemberHttp {
|
||||
'platform': 'web',
|
||||
'web_location': '333.999',
|
||||
'dm_img_list': '[]',
|
||||
'dm_img_str': dmImgStr.substring(
|
||||
0, (dmImgStr.length - 2).clamp(0, dmImgStr.length - 1)),
|
||||
'dm_cover_img_str': dmCoverImgStr.substring(
|
||||
0, (dmCoverImgStr.length - 2).clamp(0, dmCoverImgStr.length - 1)),
|
||||
'dm_img_str': dmImgStr,
|
||||
'dm_cover_img_str': dmCoverImgStr,
|
||||
'dm_img_inter': '{"ds":[],"wh":[0,0,0],"of":[0,0,0]}',
|
||||
'x-bili-device-req-json': jsonEncode({"platform": "web", "device": "pc"}),
|
||||
'x-bili-web-req-json': jsonEncode({"spm_id": "333.999"}),
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:PiliPalaX/pages/member/new/controller.dart';
|
||||
import 'package:PiliPalaX/pages/member/new/widget/user_info_card.dart';
|
||||
import 'package:PiliPalaX/pages/member/view.dart';
|
||||
import 'package:PiliPalaX/pages/member_dynamics/view.dart';
|
||||
import 'package:PiliPalaX/utils/extension.dart';
|
||||
import 'package:PiliPalaX/utils/utils.dart';
|
||||
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -28,6 +29,7 @@ class _MemberPageNewState extends State<MemberPageNew>
|
||||
int? _mid;
|
||||
String? _heroTag;
|
||||
late final MemberControllerNew _userController;
|
||||
final _key = GlobalKey<ExtendedNestedScrollViewState>();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -55,6 +57,7 @@ class _MemberPageNewState extends State<MemberPageNew>
|
||||
builder: (_, constraints) {
|
||||
// if (constraints.maxHeight > constraints.maxWidth) {
|
||||
return ExtendedNestedScrollView(
|
||||
key: _key,
|
||||
controller: _userController.scrollController,
|
||||
onlyOneScrollInBody: true,
|
||||
headerSliverBuilder: (context, innerBoxIsScrolled) {
|
||||
@@ -132,6 +135,11 @@ class _MemberPageNewState extends State<MemberPageNew>
|
||||
Widget get _buildTab => TabBar(
|
||||
controller: _userController.tabController,
|
||||
tabs: _userController.tabs,
|
||||
onTap: (value) {
|
||||
if (_userController.tabController?.indexIsChanging == false) {
|
||||
_key.currentState?.outerController.animToTop();
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Widget get _buildBody => SafeArea(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
extension ImageExtension on num {
|
||||
int cacheSize(BuildContext context) {
|
||||
@@ -9,10 +10,14 @@ extension ImageExtension on num {
|
||||
extension ScrollControllerExt on ScrollController {
|
||||
void animToTop() {
|
||||
if (!hasClients) return;
|
||||
if (offset >= MediaQuery.of(Get.context!).size.height * 7) {
|
||||
jumpTo(0);
|
||||
} else {
|
||||
animateTo(0,
|
||||
duration: const Duration(milliseconds: 500), curve: Curves.easeInOut);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ListExt<T> on List<T>? {
|
||||
bool get isNullOrEmpty => this == null || this!.isEmpty;
|
||||
|
||||
Reference in New Issue
Block a user