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,
|
surfaceTintColor: ConstColours.transparent,
|
||||||
child: CarouselSlider.builder(
|
child: CarouselSlider.builder(
|
||||||
itemCount: model.numberOfImages,
|
itemCount: model.numberOfImages,
|
||||||
|
carouselController: model.carouselController,
|
||||||
options: CarouselOptions(
|
options: CarouselOptions(
|
||||||
enlargeFactor: 1,
|
enlargeFactor: 1,
|
||||||
enlargeCenterPage: true,
|
enlargeCenterPage: true,
|
||||||
|
|
@ -79,19 +80,26 @@ class ImageCarouselView extends StatelessWidget {
|
||||||
builder: (context, _, __) => Row(
|
builder: (context, _, __) => Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Icon(
|
IconButton(
|
||||||
|
icon: Icon(
|
||||||
Icons.chevron_left,
|
Icons.chevron_left,
|
||||||
color: model.hasPreviousImage
|
color: model.hasPreviousImage
|
||||||
? ConstColours.white
|
? ConstColours.white
|
||||||
: ConstColours.black,
|
: ConstColours.black,
|
||||||
),
|
),
|
||||||
|
onPressed: model.onPreviousPressed,
|
||||||
|
),
|
||||||
AutoSizeText(
|
AutoSizeText(
|
||||||
model.currentImageName,
|
model.currentImageName,
|
||||||
style: ConstText.imageOverlayTextStyle(context),
|
style: ConstText.imageOverlayTextStyle(context),
|
||||||
),
|
),
|
||||||
Icon(
|
IconButton(
|
||||||
|
icon: Icon(
|
||||||
Icons.chevron_right,
|
Icons.chevron_right,
|
||||||
color: model.hasNextImage ? ConstColours.white : ConstColours.black,
|
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/foundation.dart';
|
||||||
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
||||||
import 'package:mc_gallery/features/home/views/image_carousel/image_carousel_view.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;
|
late final ValueNotifier<ImageModel> _currentImageModelNotifier;
|
||||||
ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier;
|
ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier;
|
||||||
|
|
||||||
|
final CarouselController carouselController = CarouselController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> initialise(bool Function() mounted, [arguments]) async {
|
Future<void> initialise(bool Function() mounted, [arguments]) async {
|
||||||
_currentImageModelNotifier = ValueNotifier(_imagesService.imageModels
|
_currentImageModelNotifier = ValueNotifier(_imagesService.imageModels
|
||||||
|
|
@ -36,6 +39,10 @@ class ImageCarouselViewModel extends BaseViewModel {
|
||||||
log.info('Swiped to image: ${_currentImageModelNotifier.value.imageIndex}');
|
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 currentImageUrl => currentImageModelListenable.value.uri.toString();
|
||||||
String get currentImageKey => currentImageModelListenable.value.imageIndex.toString();
|
String get currentImageKey => currentImageModelListenable.value.imageIndex.toString();
|
||||||
String get currentImageName => currentImageModelListenable.value.imageName;
|
String get currentImageName => currentImageModelListenable.value.imageName;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue