opt: medialist page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-02 16:31:50 +08:00
parent 9bbd934f8e
commit 2abf01362c
6 changed files with 154 additions and 150 deletions

View File

@@ -13,6 +13,7 @@ class PBadge extends StatelessWidget {
final String? semanticsLabel;
final bool bold;
final double? textScaleFactor;
final EdgeInsets? padding;
const PBadge({
super.key,
@@ -28,6 +29,7 @@ class PBadge extends StatelessWidget {
this.semanticsLabel,
this.bold = true,
this.textScaleFactor,
this.padding,
});
@override
@@ -54,7 +56,7 @@ class PBadge extends StatelessWidget {
color = t.onError;
}
EdgeInsets paddingStyle =
late EdgeInsets paddingStyle =
const EdgeInsets.symmetric(vertical: 2, horizontal: 3);
double fontSize = 11;
BorderRadius br = BorderRadius.circular(4);
@@ -66,7 +68,7 @@ class PBadge extends StatelessWidget {
}
Widget content = Container(
padding: paddingStyle,
padding: padding ?? paddingStyle,
decoration: BoxDecoration(
borderRadius: br,
color: bgColor,

View File

@@ -107,7 +107,6 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel>
late bool _isInit = true;
late final Color primary = Theme.of(context).colorScheme.primary;
final height = 120 / StyleString.aspectRatio + 10;
void listener() {
_currentTabIndex.value = _tabController.index;
@@ -248,9 +247,9 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel>
Widget _buildBody(int index, episodes) {
return KeepAliveWrapper(
builder: (context) => ScrollablePositionedList.builder(
builder: (context) => ScrollablePositionedList.separated(
padding: EdgeInsets.only(
top: 5,
top: 7,
bottom: MediaQuery.of(context).padding.bottom + 80,
),
reverse: _isReversed[index],
@@ -306,6 +305,7 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel>
);
},
itemScrollController: _itemScrollController[index],
separatorBuilder: (context, index) => const SizedBox(height: 2),
),
);
}
@@ -356,7 +356,7 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel>
return Material(
color: Colors.transparent,
child: SizedBox(
height: height,
height: 98,
child: InkWell(
onTap: () {
if (episode.badge != null && episode.badge == "会员") {