opt: code

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-03 21:23:55 +08:00
parent 1d51db0a62
commit 321b7933d7
11 changed files with 139 additions and 134 deletions

View File

@@ -4,12 +4,14 @@ class CustomSliverPersistentHeaderDelegate
extends SliverPersistentHeaderDelegate { extends SliverPersistentHeaderDelegate {
CustomSliverPersistentHeaderDelegate({ CustomSliverPersistentHeaderDelegate({
required this.child, required this.child,
required this.bgColor,
double extent = 45, double extent = 45,
}) : _minExtent = extent, }) : _minExtent = extent,
_maxExtent = extent; _maxExtent = extent;
final double _minExtent; final double _minExtent;
final double _maxExtent; final double _maxExtent;
final Widget child; final Widget child;
final Color bgColor;
@override @override
Widget build( Widget build(
@@ -17,7 +19,10 @@ class CustomSliverPersistentHeaderDelegate
//创建child子组件 //创建child子组件
//shrinkOffsetchild偏移值minExtent~maxExtent //shrinkOffsetchild偏移值minExtent~maxExtent
//overlapsContentSliverPersistentHeader覆盖其他子组件返回true否则返回false //overlapsContentSliverPersistentHeader覆盖其他子组件返回true否则返回false
return child; return ColoredBox(
color: bgColor,
child: child,
);
} }
//SliverPersistentHeader最大高度 //SliverPersistentHeader最大高度
@@ -31,6 +36,6 @@ class CustomSliverPersistentHeaderDelegate
@override @override
bool shouldRebuild( bool shouldRebuild(
covariant CustomSliverPersistentHeaderDelegate oldDelegate) { covariant CustomSliverPersistentHeaderDelegate oldDelegate) {
return true; return oldDelegate.bgColor != bgColor;
} }
} }

View File

@@ -11,7 +11,7 @@ extension BusinessTypeExtension on DynamicsType {
String get labels => ['全部', '投稿', '番剧', '专栏', 'UP'][index]; String get labels => ['全部', '投稿', '番剧', '专栏', 'UP'][index];
} }
List tabsConfig = [ List get tabsConfig => [
{ {
'tag': 'all', 'tag': 'all',
'value': DynamicsType.all, 'value': DynamicsType.all,

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
List defaultNavigationBars = [ List get defaultNavigationBars => [
{ {
'id': 0, 'id': 0,
'icon': const Icon( 'icon': const Icon(

View File

@@ -13,7 +13,7 @@ extension TabTypeDesc on TabType {
String get id => ['live', 'rcmd', 'hot', 'rank', 'bangumi'][index]; String get id => ['live', 'rcmd', 'hot', 'rank', 'bangumi'][index];
} }
List tabsConfig = [ List get tabsConfig => [
{ {
'icon': const Icon( 'icon': const Icon(
Icons.live_tv_outlined, Icons.live_tv_outlined,

View File

@@ -400,8 +400,8 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
SliverPersistentHeader replyPersistentHeader(BuildContext context) { SliverPersistentHeader replyPersistentHeader(BuildContext context) {
return SliverPersistentHeader( return SliverPersistentHeader(
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
color: Theme.of(context).colorScheme.surface,
height: 45, height: 45,
padding: const EdgeInsets.only(left: 12, right: 6), padding: const EdgeInsets.only(left: 12, right: 6),
child: Row( child: Row(

View File

@@ -73,10 +73,10 @@ class _MemberVideoState extends State<MemberVideo>
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 40, extent: 40,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 40, height: 40,
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0), padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
color: Theme.of(context).colorScheme.surface,
child: Row( child: Row(
children: [ children: [
Obx( Obx(

View File

@@ -28,9 +28,9 @@ Widget searchArticlePanel(context, searchPanelCtr, LoadingState loadingState) {
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 40, extent: 40,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 40, height: 40,
color: Theme.of(context).colorScheme.surface,
padding: const EdgeInsets.only(left: 25, right: 12), padding: const EdgeInsets.only(left: 25, right: 12),
child: Row( child: Row(
children: [ children: [

View File

@@ -26,9 +26,9 @@ Widget searchUserPanel(context, searchPanelCtr, LoadingState loadingState) {
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 40, extent: 40,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 40, height: 40,
color: Theme.of(context).colorScheme.surface,
padding: const EdgeInsets.only(left: 25, right: 12), padding: const EdgeInsets.only(left: 25, right: 12),
child: Row( child: Row(
children: [ children: [

View File

@@ -24,9 +24,9 @@ Widget searchVideoPanel(context, ctr, LoadingState loadingState) {
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 34, extent: 34,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 34, height: 34,
color: Theme.of(context).colorScheme.surface,
padding: const EdgeInsets.symmetric(horizontal: 12), padding: const EdgeInsets.symmetric(horizontal: 12),
child: Row( child: Row(
children: [ children: [

View File

@@ -112,10 +112,10 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 40, extent: 40,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 40, height: 40,
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0), padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
color: Theme.of(context).colorScheme.surface,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [

View File

@@ -134,10 +134,10 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
floating: true, floating: true,
delegate: CustomSliverPersistentHeaderDelegate( delegate: CustomSliverPersistentHeaderDelegate(
extent: 40, extent: 40,
bgColor: Theme.of(context).colorScheme.surface,
child: Container( child: Container(
height: 40, height: 40,
padding: const EdgeInsets.fromLTRB(12, 0, 6, 0), padding: const EdgeInsets.fromLTRB(12, 0, 6, 0),
color: Theme.of(context).colorScheme.surface,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [