opt: replace SizedBox with spacing (#863)

This commit is contained in:
My-Responsitories
2025-05-21 02:16:01 +08:00
committed by GitHub
parent 218e829fd4
commit 1efd62803a
8 changed files with 35 additions and 59 deletions

View File

@@ -177,8 +177,9 @@ class VideoCardV extends StatelessWidget {
), ),
videoStat(context, theme), videoStat(context, theme),
Row( Row(
spacing: 2,
children: [ children: [
if (videoItem.goto == 'bangumi') ...[ if (videoItem.goto == 'bangumi')
PBadge( PBadge(
text: videoItem.bangumiBadge, text: videoItem.bangumiBadge,
isStack: false, isStack: false,
@@ -186,18 +187,14 @@ class VideoCardV extends StatelessWidget {
type: PBadgeType.line_primary, type: PBadgeType.line_primary,
fontSize: 9, fontSize: 9,
), ),
const SizedBox(width: 2), if (videoItem.rcmdReason != null)
],
if (videoItem.rcmdReason != null) ...[
PBadge( PBadge(
text: videoItem.rcmdReason, text: videoItem.rcmdReason,
isStack: false, isStack: false,
size: PBadgeSize.small, size: PBadgeSize.small,
type: PBadgeType.secondary, type: PBadgeType.secondary,
), ),
const SizedBox(width: 2), if (videoItem.goto == 'picture')
],
if (videoItem.goto == 'picture') ...[
const PBadge( const PBadge(
text: '动态', text: '动态',
isStack: false, isStack: false,
@@ -205,17 +202,13 @@ class VideoCardV extends StatelessWidget {
type: PBadgeType.line_primary, type: PBadgeType.line_primary,
fontSize: 9, fontSize: 9,
), ),
const SizedBox(width: 2), if (videoItem.isFollowed)
],
if (videoItem.isFollowed) ...[
const PBadge( const PBadge(
text: '已关注', text: '已关注',
isStack: false, isStack: false,
size: PBadgeSize.small, size: PBadgeSize.small,
type: PBadgeType.secondary, type: PBadgeType.secondary,
), ),
const SizedBox(width: 2),
],
Expanded( Expanded(
flex: 1, flex: 1,
child: Text( child: Text(

View File

@@ -274,6 +274,7 @@ class OpusContent extends StatelessWidget {
padding: const EdgeInsets.all(8), padding: const EdgeInsets.all(8),
child: switch (element.linkCard?.card?.type) { child: switch (element.linkCard?.card?.type) {
'LINK_CARD_TYPE_UGC' => Row( 'LINK_CARD_TYPE_UGC' => Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -281,7 +282,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: element.linkCard!.card!.ugc!.cover, src: element.linkCard!.card!.ugc!.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -309,6 +309,7 @@ class OpusContent extends StatelessWidget {
], ],
), ),
'LINK_CARD_TYPE_COMMON' => Row( 'LINK_CARD_TYPE_COMMON' => Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -316,7 +317,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: element.linkCard!.card!.common!.cover, src: element.linkCard!.card!.common!.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -346,6 +346,7 @@ class OpusContent extends StatelessWidget {
], ],
), ),
'LINK_CARD_TYPE_LIVE' => Row( 'LINK_CARD_TYPE_LIVE' => Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -353,7 +354,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: element.linkCard!.card!.live!.cover, src: element.linkCard!.card!.live!.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -384,6 +384,7 @@ class OpusContent extends StatelessWidget {
], ],
), ),
'LINK_CARD_TYPE_OPUS' => Row( 'LINK_CARD_TYPE_OPUS' => Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -391,7 +392,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: element.linkCard!.card!.opus!.cover, src: element.linkCard!.card!.opus!.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -410,6 +410,7 @@ class OpusContent extends StatelessWidget {
], ],
), ),
'LINK_CARD_TYPE_VOTE' => Row( 'LINK_CARD_TYPE_VOTE' => Row(
spacing: 10,
children: [ children: [
Container( Container(
decoration: BoxDecoration( decoration: BoxDecoration(
@@ -426,7 +427,6 @@ class OpusContent extends StatelessWidget {
color: colorScheme.onSurfaceVariant, color: colorScheme.onSurfaceVariant,
), ),
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -445,6 +445,7 @@ class OpusContent extends StatelessWidget {
], ],
), ),
'LINK_CARD_TYPE_MUSIC' => Row( 'LINK_CARD_TYPE_MUSIC' => Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -452,7 +453,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: element.linkCard!.card!.music!.cover, src: element.linkCard!.card!.music!.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -482,6 +482,7 @@ class OpusContent extends StatelessWidget {
} }
}, },
child: Row( child: Row(
spacing: 10,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
radius: 6, radius: 6,
@@ -489,7 +490,6 @@ class OpusContent extends StatelessWidget {
height: 65, height: 65,
src: e.cover, src: e.cover,
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
@@ -694,20 +694,18 @@ Widget moduleBlockedItem(
decoration: bgImg(), decoration: bgImg(),
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
child: Row( child: Row(
spacing: 8,
children: [ children: [
if (moduleBlocked.icon != null) ...[ if (moduleBlocked.icon != null) icon(42),
icon(42),
const SizedBox(width: 8),
],
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
spacing: 2,
children: [ children: [
if (moduleBlocked.title?.isNotEmpty == true) if (moduleBlocked.title?.isNotEmpty == true)
Text(moduleBlocked.title!), Text(moduleBlocked.title!),
if (moduleBlocked.hintMessage?.isNotEmpty == true) ...[ if (moduleBlocked.hintMessage?.isNotEmpty == true)
const SizedBox(height: 2),
Text( Text(
moduleBlocked.hintMessage!, moduleBlocked.hintMessage!,
style: TextStyle( style: TextStyle(
@@ -715,12 +713,10 @@ Widget moduleBlockedItem(
color: theme.colorScheme.outline, color: theme.colorScheme.outline,
), ),
), ),
],
], ],
), ),
), ),
if (moduleBlocked.button != null) ...[ if (moduleBlocked.button != null)
const SizedBox(width: 8),
btn( btn(
visualDensity: const VisualDensity(vertical: -3, horizontal: -4), visualDensity: const VisualDensity(vertical: -3, horizontal: -4),
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
@@ -728,7 +724,6 @@ Widget moduleBlockedItem(
), ),
padding: const EdgeInsets.symmetric(horizontal: 10), padding: const EdgeInsets.symmetric(horizontal: 10),
), ),
],
], ],
), ),
); );

View File

@@ -408,8 +408,9 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel> {
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
spacing: 10,
children: [ children: [
if (cover?.isNotEmpty == true) ...[ if (cover?.isNotEmpty == true)
AspectRatio( AspectRatio(
aspectRatio: StyleString.aspectRatio, aspectRatio: StyleString.aspectRatio,
child: LayoutBuilder( child: LayoutBuilder(
@@ -444,17 +445,14 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel> {
); );
}, },
), ),
), )
const SizedBox(width: 10), else if (isCurrentIndex)
] else if (isCurrentIndex) ...[
Image.asset( Image.asset(
'assets/images/live.png', 'assets/images/live.png',
color: primary, color: primary,
height: 12, height: 12,
semanticLabel: "正在播放:", semanticLabel: "正在播放:",
), ),
const SizedBox(width: 10),
],
Expanded( Expanded(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,

View File

@@ -83,10 +83,9 @@ class SearchArticleController
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 10,
children: [ children: [
const SizedBox(height: 10),
const Text('排序', style: TextStyle(fontSize: 16)), const Text('排序', style: TextStyle(fontSize: 16)),
const SizedBox(height: 10),
Wrap( Wrap(
spacing: 8, spacing: 8,
runSpacing: 8, runSpacing: 8,
@@ -115,9 +114,7 @@ class SearchArticleController
) )
.toList(), .toList(),
), ),
const SizedBox(height: 20),
const Text('分区', style: TextStyle(fontSize: 16)), const Text('分区', style: TextStyle(fontSize: 16)),
const SizedBox(height: 10),
Wrap( Wrap(
spacing: 8, spacing: 8,
runSpacing: 8, runSpacing: 8,

View File

@@ -74,7 +74,7 @@ class _LogsPageState extends State<LogsPage> {
} }
return l; return l;
}) })
.where((dynamic l) => l.replaceAll("\n", "").trim().isNotEmpty) .where((l) => l.replaceAll("\n", "").trim().isNotEmpty)
.join("\n"); .join("\n");
if (date != null || body != '') { if (date != null || body != '') {
result.add({'date': date, 'body': body, 'expand': false}); result.add({'date': date, 'body': body, 'expand': false});
@@ -159,8 +159,10 @@ class _LogsPageState extends State<LogsPage> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
spacing: 5,
children: [ children: [
Row( Row(
spacing: 10,
children: [ children: [
Text( Text(
log['date'].toString(), log['date'].toString(),
@@ -171,7 +173,6 @@ class _LogsPageState extends State<LogsPage> {
.fontSize, .fontSize,
), ),
), ),
const SizedBox(width: 10),
TextButton.icon( TextButton.icon(
style: TextButton.styleFrom( style: TextButton.styleFrom(
tapTargetSize: MaterialTapTargetSize.shrinkWrap, tapTargetSize: MaterialTapTargetSize.shrinkWrap,
@@ -195,7 +196,6 @@ class _LogsPageState extends State<LogsPage> {
) )
], ],
), ),
const SizedBox(height: 5),
Card( Card(
elevation: 1, elevation: 1,
margin: EdgeInsets.zero, margin: EdgeInsets.zero,

View File

@@ -85,6 +85,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
children: [ children: [
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 10,
children: [ children: [
Stack( Stack(
clipBehavior: Clip.none, clipBehavior: Clip.none,
@@ -121,7 +122,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
), ),
], ],
), ),
const SizedBox(width: 10),
Expanded( Expanded(
child: GestureDetector( child: GestureDetector(
onTap: () => widget.showIntroDetail( onTap: () => widget.showIntroDetail(
@@ -135,6 +135,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
children: [ children: [
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 20,
children: [ children: [
Expanded( Expanded(
child: Text( child: Text(
@@ -146,7 +147,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
const SizedBox(width: 20),
Obx( Obx(
() => FilledButton.tonal( () => FilledButton.tonal(
style: FilledButton.styleFrom( style: FilledButton.styleFrom(
@@ -204,6 +204,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
], ],
), ),
Row( Row(
spacing: 6,
children: [ children: [
StatView( StatView(
context: context, context: context,
@@ -211,7 +212,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
value: value:
Utils.numFormat(bangumiItem.stat!['views']), Utils.numFormat(bangumiItem.stat!['views']),
), ),
const SizedBox(width: 6),
StatDanMu( StatDanMu(
context: context, context: context,
theme: 'gray', theme: 'gray',
@@ -219,9 +219,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
bangumiItem.stat!['danmakus']), bangumiItem.stat!['danmakus']),
), ),
if (isLandscape) ...[ if (isLandscape) ...[
const SizedBox(width: 6),
areasAndPubTime(theme, bangumiItem), areasAndPubTime(theme, bangumiItem),
const SizedBox(width: 6),
newEpDesc(theme, bangumiItem), newEpDesc(theme, bangumiItem),
] ]
], ],
@@ -366,6 +364,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
VideoDetailController videoDetailCtr, VideoDetailController videoDetailCtr,
) { ) {
return Row( return Row(
spacing: 8,
children: [ children: [
Obx( Obx(
() => ActionRowItem( () => ActionRowItem(
@@ -376,7 +375,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
text: bangumiItem.stat!['likes']!.toString(), text: bangumiItem.stat!['likes']!.toString(),
), ),
), ),
const SizedBox(width: 8),
Obx( Obx(
() => ActionRowItem( () => ActionRowItem(
icon: const Icon(FontAwesomeIcons.b), icon: const Icon(FontAwesomeIcons.b),
@@ -386,7 +384,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
text: bangumiItem.stat!['coins']!.toString(), text: bangumiItem.stat!['coins']!.toString(),
), ),
), ),
const SizedBox(width: 8),
Obx( Obx(
() => ActionRowItem( () => ActionRowItem(
icon: const Icon(FontAwesomeIcons.heart), icon: const Icon(FontAwesomeIcons.heart),
@@ -398,7 +395,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
text: bangumiItem.stat!['favorite']!.toString(), text: bangumiItem.stat!['favorite']!.toString(),
), ),
), ),
const SizedBox(width: 8),
ActionRowItem( ActionRowItem(
icon: const Icon(FontAwesomeIcons.comment), icon: const Icon(FontAwesomeIcons.comment),
onTap: () { onTap: () {
@@ -408,7 +404,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
isLoading: false, isLoading: false,
text: bangumiItem.stat!['reply']!.toString(), text: bangumiItem.stat!['reply']!.toString(),
), ),
const SizedBox(width: 8),
ActionRowItem( ActionRowItem(
icon: const Icon(FontAwesomeIcons.share), icon: const Icon(FontAwesomeIcons.share),
onTap: () => bangumiIntroController.actionShareVideo(context), onTap: () => bangumiIntroController.actionShareVideo(context),
@@ -422,6 +417,7 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
Widget areasAndPubTime(ThemeData theme, BangumiInfoModel bangumiItem) { Widget areasAndPubTime(ThemeData theme, BangumiInfoModel bangumiItem) {
return Row( return Row(
spacing: 6,
children: [ children: [
Text( Text(
(bangumiItem.areas!.isNotEmpty (bangumiItem.areas!.isNotEmpty
@@ -432,7 +428,6 @@ class _BangumiIntroPanelState extends State<BangumiIntroPanel>
color: theme.colorScheme.outline, color: theme.colorScheme.outline,
), ),
), ),
const SizedBox(width: 6),
Text( Text(
bangumiItem.publish!['pub_time_show'], bangumiItem.publish!['pub_time_show'],
style: TextStyle( style: TextStyle(

View File

@@ -192,15 +192,16 @@ class ReplyItemGrpc extends StatelessWidget {
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
spacing: 12,
children: [ children: [
lfAvtar(), lfAvtar(),
const SizedBox(width: 12),
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Row( Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
spacing: 6,
children: [ children: [
Text( Text(
replyItem.member.name, replyItem.member.name,
@@ -212,13 +213,11 @@ class ReplyItemGrpc extends StatelessWidget {
fontSize: 13, fontSize: 13,
), ),
), ),
const SizedBox(width: 6),
Image.asset( Image.asset(
'assets/images/lv/lv${replyItem.member.isSeniorMember == 1 ? '6_s' : replyItem.member.level}.png', 'assets/images/lv/lv${replyItem.member.isSeniorMember == 1 ? '6_s' : replyItem.member.level}.png',
height: 11, height: 11,
semanticLabel: "等级:${replyItem.member.level}", semanticLabel: "等级:${replyItem.member.level}",
), ),
const SizedBox(width: 6),
if (replyItem.mid == upMid) if (replyItem.mid == upMid)
const PBadge( const PBadge(
text: 'UP', text: 'UP',

View File

@@ -269,6 +269,7 @@ class ChatItem extends StatelessWidget {
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 6,
children: [ children: [
Text( Text(
content['main_title'], content['main_title'],
@@ -279,8 +280,7 @@ class ChatItem extends StatelessWidget {
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
), ),
for (var i in content['sub_cards']) ...[ for (var i in content['sub_cards'])
const SizedBox(height: 6),
GestureDetector( GestureDetector(
onTap: () async { onTap: () async {
RegExp bvRegex = RegExp bvRegex =
@@ -309,13 +309,13 @@ class ChatItem extends StatelessWidget {
} }
}, },
child: Row( child: Row(
spacing: 6,
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
width: 130, width: 130,
height: 130 * 9 / 16, height: 130 * 9 / 16,
src: i['cover_url'], src: i['cover_url'],
), ),
const SizedBox(width: 6),
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -354,7 +354,6 @@ class ChatItem extends StatelessWidget {
], ],
), ),
), ),
],
], ],
), ),
), ),