Merge branch 'main' into fix

This commit is contained in:
guozhigq
2024-12-01 22:39:54 +08:00
6 changed files with 63 additions and 37 deletions

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pilipala/common/widgets/network_img_layer.dart';
import 'package:pilipala/models/read/opus.dart';
import 'controller.dart';
import 'text_helper.dart';
@ -26,16 +27,18 @@ class _OpusPageState extends State<OpusPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: _buildAppBar(),
body: SingleChildScrollView(
body: CustomScrollView(
controller: controller.scrollController,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTitle(),
_buildFutureContent(),
],
),
slivers: [
SliverList(
delegate: SliverChildListDelegate(
[
_buildTitle(),
_buildFutureContent(),
],
),
),
],
),
);
}

View File

@ -6,6 +6,7 @@ import 'package:pilipala/models/read/opus.dart';
import 'package:pilipala/models/read/read.dart';
import 'package:pilipala/pages/opus/text_helper.dart';
import 'package:pilipala/utils/utils.dart';
import 'controller.dart';
class ReadPage extends StatefulWidget {
@ -38,16 +39,18 @@ class _ReadPageState extends State<ReadPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: _buildAppBar(),
body: SingleChildScrollView(
body: CustomScrollView(
controller: controller.scrollController,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTitle(),
_buildFutureContent(),
],
),
slivers: [
SliverList(
delegate: SliverChildListDelegate(
[
_buildTitle(),
_buildFutureContent(),
],
),
),
],
),
);
}

View File

@ -617,6 +617,7 @@ class VideoIntroController extends GetxController {
// 播放器底栏 选集 回调
void showEposideHandler() {
late List episodes;
int currentEpisodeIndex = 0;
VideoEpidoesType dataType = VideoEpidoesType.videoEpisode;
if (videoDetail.value.ugcSeason != null) {
dataType = VideoEpidoesType.videoEpisode;
@ -625,6 +626,7 @@ class VideoIntroController extends GetxController {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == lastPlayCid.value) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
@ -644,6 +646,7 @@ class VideoIntroController extends GetxController {
sheetHeight: Get.size.height,
isFullScreen: true,
ugcSeason: ugcSeason,
currentEpisodeIndex: currentEpisodeIndex,
changeFucCall: (item, index) {
if (dataType == VideoEpidoesType.videoEpisode) {
changeSeasonOrbangu(

View File

@ -42,23 +42,14 @@ class _SeasonPanelState extends State<SeasonPanel> {
_videoDetailController = Get.find<VideoDetailController>(tag: heroTag);
/// 根据 cid 找到对应集,找到对应 episodes
final List<SectionItem> sections = widget.ugcSeason.sections!;
for (int i = 0; i < sections.length; i++) {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == cid) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
}
}
getCurrentEpisodeIndex();
/// 取对应 season_id 的 episodes
getCurrentIndex();
_videoDetailController.cid.listen((int p0) {
cid = p0;
getCurrentIndex();
getCurrentEpisodeIndex();
});
}
@ -94,6 +85,21 @@ class _SeasonPanelState extends State<SeasonPanel> {
}
}
// 获取currentEpisodeIndex
void getCurrentEpisodeIndex() {
final List<SectionItem> sections = widget.ugcSeason.sections!;
for (int i = 0; i < sections.length; i++) {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == cid) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
}
}
}
Widget buildEpisodeListItem(
EpisodeItem episode,
int index,