fix(recommend): 修正热播信息行与操作栏位置
This commit is contained in:
1 parent
8737937875
commit
0c06a6dccd
11 files changed
+78
-5
No files matched your search
@@ -749,5 +749,8 @@
|
||||
"watchedToEpisode": "Watched to Episode {episode}",
|
||||
"@watchedToEpisode": { "placeholders": { "episode": { "type": "int" } } },
|
||||
"homeWatchAll": "Watch all",
|
||||
"hotChartLabel": "Trending",
|
||||
"hotChartRanked": "TOP{rank} · Trending",
|
||||
"@hotChartRanked": { "placeholders": { "rank": { "type": "int" } } },
|
||||
"confirmRemove": "Remove this item?"
|
||||
}
|
||||
@@ -706,5 +706,8 @@
|
||||
"watchedToEpisode": "Ditonton hingga Episode {episode}",
|
||||
"@watchedToEpisode": { "placeholders": { "episode": { "type": "int" } } },
|
||||
"homeWatchAll": "Tonton semua",
|
||||
"hotChartLabel": "Peringkat populer",
|
||||
"hotChartRanked": "TOP{rank} · Populer",
|
||||
"@hotChartRanked": { "placeholders": { "rank": { "type": "int" } } },
|
||||
"confirmRemove": "Hapus item ini?"
|
||||
}
|
||||
@@ -3262,6 +3262,18 @@ abstract class AppLocalizations {
|
||||
/// **'Watch all'**
|
||||
String get homeWatchAll;
|
||||
|
||||
/// No description provided for @hotChartLabel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Trending'**
|
||||
String get hotChartLabel;
|
||||
|
||||
/// No description provided for @hotChartRanked.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'TOP{rank} · Trending'**
|
||||
String hotChartRanked(int rank);
|
||||
|
||||
/// No description provided for @confirmRemove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
||||
@@ -1702,6 +1702,14 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get homeWatchAll => 'Watch all';
|
||||
|
||||
@override
|
||||
String get hotChartLabel => 'Trending';
|
||||
|
||||
@override
|
||||
String hotChartRanked(int rank) {
|
||||
return 'TOP$rank · Trending';
|
||||
}
|
||||
|
||||
@override
|
||||
String get confirmRemove => 'Remove this item?';
|
||||
}
|
||||
@@ -1704,6 +1704,14 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get homeWatchAll => 'Tonton semua';
|
||||
|
||||
@override
|
||||
String get hotChartLabel => 'Peringkat populer';
|
||||
|
||||
@override
|
||||
String hotChartRanked(int rank) {
|
||||
return 'TOP$rank · Populer';
|
||||
}
|
||||
|
||||
@override
|
||||
String get confirmRemove => 'Hapus item ini?';
|
||||
}
|
||||
@@ -1678,6 +1678,14 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get homeWatchAll => '观看全集';
|
||||
|
||||
@override
|
||||
String get hotChartLabel => '热播榜';
|
||||
|
||||
@override
|
||||
String hotChartRanked(int rank) {
|
||||
return 'TOP$rank·热播榜';
|
||||
}
|
||||
|
||||
@override
|
||||
String get confirmRemove => '确定移除这条内容吗?';
|
||||
}
|
||||
@@ -668,5 +668,8 @@
|
||||
"watchedToEpisode": "已看至 第 {episode} 集",
|
||||
"@watchedToEpisode": { "placeholders": { "episode": { "type": "int" } } },
|
||||
"homeWatchAll": "观看全集",
|
||||
"hotChartLabel": "热播榜",
|
||||
"hotChartRanked": "TOP{rank}·热播榜",
|
||||
"@hotChartRanked": { "placeholders": { "rank": { "type": "int" } } },
|
||||
"confirmRemove": "确定移除这条内容吗?"
|
||||
}
|
||||
@@ -21,6 +21,7 @@ part 'home_feed_overlay_parts.dart';
|
||||
const double _progressHeight = 2;
|
||||
const double _progressHitHeight = 12;
|
||||
const double _pageHorizontal = 14;
|
||||
const double _railRight = 8;
|
||||
const double _railGap = 12;
|
||||
const double _railBottomOffset = 60;
|
||||
const List<Shadow> _boostTextShadows = [
|
||||
@@ -53,6 +54,7 @@ class HomeFeedOverlay extends StatefulWidget {
|
||||
required this.onMore,
|
||||
this.likeCount,
|
||||
this.favoriteCount,
|
||||
this.rankingRank,
|
||||
this.commentCount,
|
||||
this.authorNote = '',
|
||||
this.onScrubStart,
|
||||
@@ -69,6 +71,7 @@ class HomeFeedOverlay extends StatefulWidget {
|
||||
final bool liked;
|
||||
final int? likeCount;
|
||||
final int? favoriteCount;
|
||||
final int? rankingRank;
|
||||
final int? commentCount;
|
||||
final bool saved;
|
||||
final String authorNote;
|
||||
@@ -123,7 +126,7 @@ class _HomeFeedOverlayState extends State<HomeFeedOverlay> {
|
||||
else if (widget.visible)
|
||||
Positioned(
|
||||
left: _pageHorizontal,
|
||||
right: _pageHorizontal,
|
||||
right: _railRight,
|
||||
bottom: 12,
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
@@ -200,6 +203,7 @@ class _HomeFeedOverlayState extends State<HomeFeedOverlay> {
|
||||
|
||||
Widget _rail() {
|
||||
return HomeFeedActionRail(
|
||||
key: const Key('home-feed-action-rail'),
|
||||
saved: widget.saved,
|
||||
liked: widget.liked,
|
||||
favoriteCount: widget.favoriteCount,
|
||||
@@ -216,6 +220,7 @@ class _HomeFeedOverlayState extends State<HomeFeedOverlay> {
|
||||
episode: widget.episode,
|
||||
onDetail: widget.onDetail,
|
||||
onOpenFullPlayer: widget.onOpenFullPlayer,
|
||||
rankingRank: widget.rankingRank,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -30,12 +30,14 @@ class HomeFeedInfoPanel extends StatefulWidget {
|
||||
required this.episode,
|
||||
required this.onDetail,
|
||||
required this.onOpenFullPlayer,
|
||||
this.rankingRank,
|
||||
});
|
||||
|
||||
final Drama drama;
|
||||
final Episode episode;
|
||||
final VoidCallback onDetail;
|
||||
final VoidCallback onOpenFullPlayer;
|
||||
final int? rankingRank;
|
||||
|
||||
@override
|
||||
State<HomeFeedInfoPanel> createState() => _HomeFeedInfoPanelState();
|
||||
@@ -119,6 +121,7 @@ class _HomeFeedInfoPanelState extends State<HomeFeedInfoPanel> {
|
||||
Widget _metaPills(AppLocalizations l10n) {
|
||||
final hot = isHotDrama(widget.drama);
|
||||
final views = widget.drama.viewCount;
|
||||
final rank = widget.rankingRank;
|
||||
if (!hot && views <= 0) return const SizedBox.shrink();
|
||||
return Wrap(
|
||||
key: const Key('home-feed-meta-pills'),
|
||||
@@ -139,7 +142,9 @@ class _HomeFeedInfoPanelState extends State<HomeFeedInfoPanel> {
|
||||
),
|
||||
const SizedBox(width: 2),
|
||||
Text(
|
||||
l10n.rankingHot,
|
||||
rank != null && rank > 0
|
||||
? l10n.hotChartRanked(rank)
|
||||
: l10n.hotChartLabel,
|
||||
style: const TextStyle(
|
||||
color: AppColors.textPrimary,
|
||||
fontSize: _metaFont,
|
||||
@@ -154,7 +159,7 @@ class _HomeFeedInfoPanelState extends State<HomeFeedInfoPanel> {
|
||||
key: const Key('home-feed-view-pill'),
|
||||
background: AppColors.overlaySoft,
|
||||
child: Text(
|
||||
formatInteractionCount(views),
|
||||
formatPlayCount(views),
|
||||
style: const TextStyle(
|
||||
color: AppColors.textPrimary,
|
||||
fontSize: _metaFont,
|
||||
@@ -209,7 +214,7 @@ class _HomeFeedInfoPanelState extends State<HomeFeedInfoPanel> {
|
||||
],
|
||||
Expanded(
|
||||
child: Text(
|
||||
genres.join(' | '),
|
||||
genres.join(' '),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: const TextStyle(
|
||||
@@ -225,6 +230,8 @@ class _HomeFeedInfoPanelState extends State<HomeFeedInfoPanel> {
|
||||
widget.drama.episodeCount,
|
||||
),
|
||||
key: const Key('home-feed-episode-progress'),
|
||||
maxLines: 1,
|
||||
softWrap: false,
|
||||
style: const TextStyle(
|
||||
color: AppColors.overlaySecondary,
|
||||
fontSize: _metaFont,
|
||||
|
||||
Reference in new issue
Block a user