v1.0.28+28
All checks were successful
Flutter Schmutter / build (push) Successful in 3m30s

This commit is contained in:
2025-06-06 08:43:50 +02:00
parent 6fb4775043
commit 78ff1953ad
8 changed files with 69 additions and 67 deletions

View File

@ -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,