This commit is contained in:
@ -21,6 +21,7 @@ class DetailView extends StatefulWidget {
|
||||
class _DetailViewState extends State<DetailView> {
|
||||
late PageController _pageController;
|
||||
bool isLoading = false;
|
||||
int _currentIndex = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@ -30,8 +31,16 @@ class _DetailViewState extends State<DetailView> {
|
||||
final initialIndex = provider.mediaItems.indexWhere(
|
||||
(item) => item.id == widget.initialItemId,
|
||||
);
|
||||
|
||||
_pageController = PageController(initialPage: initialIndex);
|
||||
|
||||
_currentIndex = initialIndex;
|
||||
_pageController.addListener(() {
|
||||
setState(() {
|
||||
_currentIndex = _pageController.page?.round() ?? 0;
|
||||
});
|
||||
});
|
||||
|
||||
_preloadAdjacentMedia(initialIndex);
|
||||
}
|
||||
|
||||
@ -97,10 +106,12 @@ class _DetailViewState extends State<DetailView> {
|
||||
PageTransformer(
|
||||
controller: _pageController,
|
||||
pages: provider.mediaItems.map((item) {
|
||||
int itemIndex = provider.mediaItems.indexOf(item);
|
||||
|
||||
return SafeArea(
|
||||
child: SmartRefreshIndicator(
|
||||
onRefresh: _loadMoreMedia,
|
||||
child: _buildMediaItem(item),
|
||||
child: _buildMediaItem(item, _currentIndex == itemIndex),
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
@ -129,7 +140,7 @@ class _DetailViewState extends State<DetailView> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildMediaItem(MediaItem item) {
|
||||
Widget _buildMediaItem(MediaItem item, bool isActive) {
|
||||
final provider = Provider.of<MediaProvider>(context);
|
||||
|
||||
return SingleChildScrollView(
|
||||
@ -143,7 +154,7 @@ class _DetailViewState extends State<DetailView> {
|
||||
errorWidget: (context, url, error) => Icon(Icons.error),
|
||||
)
|
||||
else
|
||||
VideoWidget(details: item, isActive: true),
|
||||
VideoWidget(details: item, isActive: isActive),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
item.mime,
|
||||
|
Reference in New Issue
Block a user