mod: home: show anonymous icon

Closes #81

opt: SliverPersistentHeaderDelegate

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-01 11:46:23 +08:00
parent dda0fc15c7
commit 144a9b604a
17 changed files with 101 additions and 93 deletions

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/custom_sliver_persistent_header_delegate.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/loading_state.dart';
@@ -131,7 +132,8 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
SliverPersistentHeader(
pinned: false,
floating: true,
delegate: MySliverPersistentHeaderDelegate(
delegate: CustomSliverPersistentHeaderDelegate(
extent: 40,
child: Container(
height: 40,
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
@@ -298,32 +300,3 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
};
}
}
class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
MySliverPersistentHeaderDelegate({required this.child});
final double _minExtent = 45;
final double _maxExtent = 45;
final Widget child;
@override
Widget build(
BuildContext context, double shrinkOffset, bool overlapsContent) {
//创建child子组件
//shrinkOffsetchild偏移值minExtent~maxExtent
//overlapsContentSliverPersistentHeader覆盖其他子组件返回true否则返回false
return child;
}
//SliverPersistentHeader最大高度
@override
double get maxExtent => _maxExtent;
//SliverPersistentHeader最小高度
@override
double get minExtent => _minExtent;
@override
bool shouldRebuild(covariant MySliverPersistentHeaderDelegate oldDelegate) {
return true;
}
}