Skip to content

Commit 05522af

Browse files
authored
fix: detail page some error (#78)
1 parent ea539a0 commit 05522af

File tree

8 files changed

+60
-22
lines changed

8 files changed

+60
-22
lines changed

lib/pages/detail/view.dart

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ class DetailPage extends StatefulWidget {
2727
Key? key,
2828
required this.url,
2929
required this.package,
30-
this.heroTag,
30+
this.tag,
3131
}) : super(key: key);
3232
final String url;
3333
final String package;
34-
final String? heroTag;
34+
final String? tag;
3535

3636
@override
3737
State<DetailPage> createState() => _DetailPageState();
@@ -46,15 +46,18 @@ class _DetailPageState extends State<DetailPage> {
4646
DetailPageController(
4747
package: widget.package,
4848
url: widget.url,
49-
heroTag: widget.heroTag,
49+
heroTag: widget.tag,
5050
),
51+
tag: widget.tag,
5152
);
5253
super.initState();
5354
}
5455

5556
@override
5657
void dispose() {
57-
Get.delete<DetailPageController>();
58+
Get.delete<DetailPageController>(
59+
tag: widget.tag,
60+
);
5861
super.dispose();
5962
}
6063

@@ -95,7 +98,9 @@ class _DetailPageState extends State<DetailPage> {
9598
c.detail?.title ?? '',
9699
controller: c.scrollController,
97100
),
98-
flexibleSpace: const DetailAppbarflexibleSpace(),
101+
flexibleSpace: DetailAppbarflexibleSpace(
102+
tag: widget.tag,
103+
),
99104
bottom: TabBar(
100105
tabs: tabs,
101106
),
@@ -139,8 +144,13 @@ class _DetailPageState extends State<DetailPage> {
139144
padding: const EdgeInsets.all(8),
140145
child: TabBarView(
141146
children: [
142-
if (!LayoutUtils.isTablet) const DetailEpisodes(),
143-
const DetailOverView(),
147+
if (!LayoutUtils.isTablet)
148+
DetailEpisodes(
149+
tag: widget.tag,
150+
),
151+
DetailOverView(
152+
tag: widget.tag,
153+
),
144154
if (c.type == ExtensionType.bangumi)
145155
Obx(() {
146156
if (c.tmdbDetail == null || c.tmdbDetail!.casts.isEmpty) {

lib/pages/detail/widgets/detail_appbar_flexible_space.dart

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ import 'package:miru_app/widgets/cover.dart';
1010
class DetailAppbarflexibleSpace extends StatefulWidget {
1111
const DetailAppbarflexibleSpace({
1212
Key? key,
13+
this.tag,
1314
}) : super(key: key);
1415

16+
final String? tag;
17+
1518
@override
1619
State<DetailAppbarflexibleSpace> createState() =>
1720
_DetailAppbarflexibleSpaceState();
1821
}
1922

2023
class _DetailAppbarflexibleSpaceState extends State<DetailAppbarflexibleSpace> {
21-
final DetailPageController c = Get.find();
24+
late DetailPageController c = Get.find(tag: widget.tag);
2225

2326
double _offset = 1;
2427

@@ -122,15 +125,17 @@ class _DetailAppbarflexibleSpaceState extends State<DetailAppbarflexibleSpace> {
122125
style: Get.theme.textTheme.titleLarge,
123126
),
124127
const SizedBox(height: 10),
125-
const DetailExtensionTile(),
128+
DetailExtensionTile(
129+
tag: widget.tag,
130+
),
126131
],
127132
),
128133
),
129134
)
130135
],
131136
),
132137
),
133-
const Positioned(
138+
Positioned(
134139
top: null,
135140
left: 20,
136141
right: 20,
@@ -139,14 +144,18 @@ class _DetailAppbarflexibleSpaceState extends State<DetailAppbarflexibleSpace> {
139144
children: [
140145
Expanded(
141146
flex: 4,
142-
child: DetailContinuePlay(),
147+
child: DetailContinuePlay(
148+
tag: widget.tag,
149+
),
143150
),
144-
SizedBox(
151+
const SizedBox(
145152
width: 10,
146153
),
147154
Expanded(
148155
flex: 3,
149-
child: DetailFavoriteButton(),
156+
child: DetailFavoriteButton(
157+
tag: widget.tag,
158+
),
150159
)
151160
],
152161
),

lib/pages/detail/widgets/detail_continue_play.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@ import 'package:miru_app/widgets/platform_widget.dart';
1010
class DetailContinuePlay extends StatefulWidget {
1111
const DetailContinuePlay({
1212
Key? key,
13+
this.tag,
1314
}) : super(key: key);
15+
final String? tag;
16+
1417
@override
1518
State<DetailContinuePlay> createState() => _DetailContinuePlayState();
1619
}
1720

1821
class _DetailContinuePlayState extends State<DetailContinuePlay> {
19-
late DetailPageController c = Get.find<DetailPageController>();
22+
late DetailPageController c = Get.find<DetailPageController>(tag: widget.tag);
2023

2124
Widget _buildAndroid(BuildContext context) {
2225
return Obx(() {

lib/pages/detail/widgets/detail_episodes.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ import 'package:miru_app/widgets/platform_widget.dart';
1313
class DetailEpisodes extends StatefulWidget {
1414
const DetailEpisodes({
1515
Key? key,
16+
this.tag,
1617
}) : super(key: key);
18+
final String? tag;
1719

1820
@override
1921
State<DetailEpisodes> createState() => _DetailEpisodesState();
2022
}
2123

2224
class _DetailEpisodesState extends State<DetailEpisodes> {
23-
late DetailPageController c = Get.find<DetailPageController>();
25+
late DetailPageController c = Get.find<DetailPageController>(tag: widget.tag);
2426
List<fluent.ComboBoxItem<int>>? comboBoxItems;
2527
List<DropdownMenuItem<int>>? dropdownItems;
2628
late List<ExtensionEpisodeGroup> episodes = [];

lib/pages/detail/widgets/detail_extension_tile.dart

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ import 'package:miru_app/utils/extension.dart';
66
import 'package:miru_app/widgets/cache_network_image.dart';
77

88
class DetailExtensionTile extends StatelessWidget {
9-
const DetailExtensionTile({Key? key}) : super(key: key);
9+
const DetailExtensionTile({
10+
Key? key,
11+
this.tag,
12+
}) : super(key: key);
13+
14+
final String? tag;
1015

1116
@override
1217
Widget build(BuildContext context) {
13-
final c = Get.find<DetailPageController>();
18+
final c = Get.find<DetailPageController>(tag: tag);
1419
return Obx(() {
1520
if (c.extension == null) {
1621
return Text(FlutterI18n.translate(

lib/pages/detail/widgets/detail_favorite_button.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@ import 'package:miru_app/utils/i18n.dart';
66
import 'package:miru_app/widgets/platform_widget.dart';
77

88
class DetailFavoriteButton extends StatefulWidget {
9-
const DetailFavoriteButton({Key? key}) : super(key: key);
9+
const DetailFavoriteButton({
10+
Key? key,
11+
this.tag,
12+
}) : super(key: key);
13+
final String? tag;
1014

1115
@override
1216
fluent.State<DetailFavoriteButton> createState() =>
1317
_DetailFavoriteButtonState();
1418
}
1519

1620
class _DetailFavoriteButtonState extends State<DetailFavoriteButton> {
17-
final c = Get.find<DetailPageController>();
21+
late DetailPageController c = Get.find<DetailPageController>(tag: widget.tag);
1822

1923
Widget _buildAndroid(BuildContext context) {
2024
return Obx(

lib/pages/detail/widgets/detail_overview.dart

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ import 'package:miru_app/utils/i18n.dart';
66
import 'package:miru_app/widgets/cache_network_image.dart';
77

88
class DetailOverView extends StatelessWidget {
9-
const DetailOverView({Key? key}) : super(key: key);
9+
const DetailOverView({
10+
Key? key,
11+
this.tag,
12+
}) : super(key: key);
13+
14+
final String? tag;
1015

1116
@override
1217
Widget build(BuildContext context) {
13-
final c = Get.find<DetailPageController>();
18+
final c = Get.find<DetailPageController>(tag: tag);
1419
return Padding(
1520
padding: const EdgeInsets.only(
1621
left: 16,

lib/widgets/extension_item_card.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class _ExtensionItemCardState extends State<ExtensionItemCard> {
3636
Get.to(DetailPage(
3737
url: widget.url,
3838
package: widget.package,
39-
heroTag: widget.url,
39+
tag: widget.url,
4040
));
4141
},
4242
),

0 commit comments

Comments
 (0)