flutter_carousel_slider
flutter_carousel_slider copied to clipboard
Error in Documentation - CarouselController does not work for StatelessWidget
This section is wrong: https://pub.dev/packages/carousel_slider#carousel-controller
CarouselController
does not work for StatelessWidget
. It should be StatefulWidget
Hello @MichalDanielDobrzanski,
We can you CarouselController
in StatelessWidget
. If you are unable to do so please provide a sample code.
Here is the full code that uses CarouselController
in StatelessWidget
Sample Code
import 'package:carousel_slider_plus/carousel_slider_plus.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MainApp());
}
const List<String> imgList = [
'https://images.unsplash.com/photo-1520342868574-5fa3804e551c?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=6ff92caffcdd63681a35134a6770ed3b&auto=format&fit=crop&w=1951&q=80',
'https://images.unsplash.com/photo-1522205408450-add114ad53fe?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=368f45b0888aeb0b7b08e3a1084d3ede&auto=format&fit=crop&w=1950&q=80',
'https://images.unsplash.com/photo-1519125323398-675f0ddb6308?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=94a1e718d89ca60a6337a6008341ca50&auto=format&fit=crop&w=1950&q=80',
'https://images.unsplash.com/photo-1523205771623-e0faa4d2813d?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=89719a0d55dd05e2deae4120227e6efc&auto=format&fit=crop&w=1953&q=80',
'https://images.unsplash.com/photo-1508704019882-f9cf40e475b4?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=8c6e5e3aba713b17aa1fe71ab4f0ae5b&auto=format&fit=crop&w=1352&q=80',
'https://images.unsplash.com/photo-1519985176271-adb1088fa94c?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a0c8d632e977f94e5d312d9893258f59&auto=format&fit=crop&w=1355&q=80'
];
class MainApp extends StatelessWidget {
MainApp({super.key});
final CarouselController _controller = CarouselController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
CarouselSlider(
disableGesture: true,
carouselController: _controller,
options: CarouselOptions(autoPlay: true),
items: imgList.map((item) {
return Image.network(item, fit: BoxFit.cover);
}).toList(),
),
Row(
children: [
Expanded(
child: TextButton(
onPressed: () => _controller.previousPage(
duration: const Duration(milliseconds: 300),
curve: Curves.linear,
),
child: const Text('Previous'),
),
),
Expanded(
child: TextButton(
onPressed: () => _controller.nextPage(
duration: const Duration(milliseconds: 300),
curve: Curves.linear,
),
child: const Text('Next'),
),
),
],
),
],
),
),
),
);
}
}