Compare commits
8 commits
cb3d688812
...
3a95b918dc
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a95b918dc | |||
| 78fe9e7b09 | |||
| 1747ab0245 | |||
| 6a84a9bef0 | |||
| a0ed894016 | |||
|
|
4ade7f1682 | ||
|
|
47945dbec7 | ||
|
|
127a09b597 |
2 changed files with 23 additions and 8 deletions
|
|
@ -46,6 +46,7 @@ class ImageCarouselView extends StatelessWidget {
|
|||
surfaceTintColor: ConstColours.transparent,
|
||||
child: CarouselSlider.builder(
|
||||
itemCount: model.numberOfImages,
|
||||
carouselController: model.carouselController,
|
||||
options: CarouselOptions(
|
||||
enlargeFactor: 1,
|
||||
enlargeCenterPage: true,
|
||||
|
|
@ -79,19 +80,26 @@ class ImageCarouselView extends StatelessWidget {
|
|||
builder: (context, _, __) => Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.chevron_left,
|
||||
color: model.hasPreviousImage
|
||||
? ConstColours.white
|
||||
: ConstColours.black,
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.chevron_left,
|
||||
color: model.hasPreviousImage
|
||||
? ConstColours.white
|
||||
: ConstColours.black,
|
||||
),
|
||||
onPressed: model.onPreviousPressed,
|
||||
),
|
||||
AutoSizeText(
|
||||
model.currentImageName,
|
||||
style: ConstText.imageOverlayTextStyle(context),
|
||||
),
|
||||
Icon(
|
||||
Icons.chevron_right,
|
||||
color: model.hasNextImage ? ConstColours.white : ConstColours.black,
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.chevron_right,
|
||||
color:
|
||||
model.hasNextImage ? ConstColours.white : ConstColours.black,
|
||||
),
|
||||
onPressed: model.onNextPressed,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:carousel_slider/carousel_controller.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
||||
import 'package:mc_gallery/features/home/views/image_carousel/image_carousel_view.dart';
|
||||
|
|
@ -17,6 +18,8 @@ class ImageCarouselViewModel extends BaseViewModel {
|
|||
late final ValueNotifier<ImageModel> _currentImageModelNotifier;
|
||||
ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier;
|
||||
|
||||
final CarouselController carouselController = CarouselController();
|
||||
|
||||
@override
|
||||
Future<void> initialise(bool Function() mounted, [arguments]) async {
|
||||
_currentImageModelNotifier = ValueNotifier(_imagesService.imageModels
|
||||
|
|
@ -36,6 +39,10 @@ class ImageCarouselViewModel extends BaseViewModel {
|
|||
log.info('Swiped to image: ${_currentImageModelNotifier.value.imageIndex}');
|
||||
}
|
||||
|
||||
void onPreviousPressed() => carouselController.previousPage();
|
||||
|
||||
void onNextPressed() => carouselController.nextPage();
|
||||
|
||||
String get currentImageUrl => currentImageModelListenable.value.uri.toString();
|
||||
String get currentImageKey => currentImageModelListenable.value.imageIndex.toString();
|
||||
String get currentImageName => currentImageModelListenable.value.imageName;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue