From 88b3ebe67b08f2efd5bf15589e7bcf8a97f900f4 Mon Sep 17 00:00:00 2001 From: James Rocha Date: Wed, 7 Aug 2024 11:50:18 -0300 Subject: [PATCH 01/12] fix: Rename CarouselController to CarouselSliderController --- README.md | 8 ++++---- example/lib/main.dart | 6 +++--- lib/carousel_controller.dart | 6 +++--- lib/carousel_slider.dart | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b0822d5..cf69829 100644 --- a/README.md +++ b/README.md @@ -100,11 +100,11 @@ CarouselSlider.builder( ## Carousel controller -In order to manually control the pageview's position, you can create your own `CarouselController`, and pass it to `CarouselSlider`. Then you can use the `CarouselController` instance to manipulate the position. +In order to manually control the pageview's position, you can create your own `CarouselSliderController`, and pass it to `CarouselSlider`. Then you can use the `CarouselSliderController` instance to manipulate the position. ```dart class CarouselDemo extends StatelessWidget { - CarouselController buttonCarouselController = CarouselController(); + CarouselSliderController buttonCarouselController = CarouselSliderController(); @override Widget build(BuildContext context) => Column( @@ -130,7 +130,7 @@ class CarouselDemo extends StatelessWidget { } ``` -### `CarouselController` methods +### `CarouselSliderController` methods #### `.nextPage({Duration duration, Curve curve})` @@ -170,7 +170,7 @@ Image carousel slider with custom indicator demo: ![indicator](screenshot/indicator.gif) -Custom `CarouselController` and manually control the pageview position demo: +Custom `CarouselSliderController` and manually control the pageview position demo: ![manual](screenshot/manually.gif) diff --git a/example/lib/main.dart b/example/lib/main.dart index 59129fe..3e860d6 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -255,7 +255,7 @@ class ManuallyControlledSlider extends StatefulWidget { } class _ManuallyControlledSliderState extends State { - final CarouselController _controller = CarouselController(); + final CarouselSliderController _controller = CarouselSliderController(); @override void initState() { @@ -408,7 +408,7 @@ class CarouselWithIndicatorDemo extends StatefulWidget { class _CarouselWithIndicatorState extends State { int _current = 0; - final CarouselController _controller = CarouselController(); + final CarouselSliderController _controller = CarouselSliderController(); @override Widget build(BuildContext context) { @@ -515,7 +515,7 @@ class CarouselChangeReasonDemo extends StatefulWidget { class _CarouselChangeReasonDemoState extends State { String reason = ''; - final CarouselController _controller = CarouselController(); + final CarouselSliderController _controller = CarouselSliderController(); void onPageChange(int index, CarouselPageChangedReason changeReason) { setState(() { diff --git a/lib/carousel_controller.dart b/lib/carousel_controller.dart index 501b2c0..9306dbb 100644 --- a/lib/carousel_controller.dart +++ b/lib/carousel_controller.dart @@ -6,7 +6,7 @@ import 'carousel_options.dart'; import 'carousel_state.dart'; import 'utils.dart'; -abstract class CarouselController { +abstract class CarouselSliderController { bool get ready; Future get onReady; @@ -23,10 +23,10 @@ abstract class CarouselController { void stopAutoPlay(); - factory CarouselController() => CarouselControllerImpl(); + factory CarouselSliderController() => CarouselControllerImpl(); } -class CarouselControllerImpl implements CarouselController { +class CarouselControllerImpl implements CarouselSliderController { final Completer _readyCompleter = Completer(); CarouselState? _state; diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index c9539df..4e5dbe2 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -39,13 +39,13 @@ class CarouselSlider extends StatefulWidget { {required this.items, required this.options, this.disableGesture, - CarouselController? carouselController, + CarouselSliderController? carouselController, Key? key}) : itemBuilder = null, itemCount = items != null ? items.length : 0, _carouselController = carouselController != null ? carouselController as CarouselControllerImpl - : CarouselController() as CarouselControllerImpl, + : CarouselSliderController() as CarouselControllerImpl, super(key: key); /// The on demand item builder constructor @@ -54,12 +54,12 @@ class CarouselSlider extends StatefulWidget { required this.itemBuilder, required this.options, this.disableGesture, - CarouselController? carouselController, + CarouselSliderController? carouselController, Key? key}) : items = null, _carouselController = carouselController != null ? carouselController as CarouselControllerImpl - : CarouselController() as CarouselControllerImpl, + : CarouselSliderController() as CarouselControllerImpl, super(key: key); @override @@ -355,7 +355,7 @@ class CarouselSliderState extends State BuildContext storageContext = carouselState! .pageController!.position.context.storageContext; final double? previousSavedPosition = - PageStorage.of(storageContext)?.readState(storageContext) + PageStorage.of(storageContext).readState(storageContext) as double?; if (previousSavedPosition != null) { itemOffset = previousSavedPosition - idx.toDouble(); From becf7ba6020081eb3d2e69094799fc97512161e3 Mon Sep 17 00:00:00 2001 From: James Rocha Date: Wed, 7 Aug 2024 18:54:11 -0300 Subject: [PATCH 02/12] refactor: Update CarouselControllerImpl to CarouselSliderControllerImpl --- lib/carousel_controller.dart | 4 ++-- lib/carousel_slider.dart | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/carousel_controller.dart b/lib/carousel_controller.dart index 9306dbb..280f996 100644 --- a/lib/carousel_controller.dart +++ b/lib/carousel_controller.dart @@ -23,10 +23,10 @@ abstract class CarouselSliderController { void stopAutoPlay(); - factory CarouselSliderController() => CarouselControllerImpl(); + factory CarouselSliderController() => CarouselSliderControllerImpl(); } -class CarouselControllerImpl implements CarouselSliderController { +class CarouselSliderControllerImpl implements CarouselSliderController { final Completer _readyCompleter = Completer(); CarouselState? _state; diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index 4e5dbe2..e64ae29 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -31,7 +31,7 @@ class CarouselSlider extends StatefulWidget { final ExtendedIndexedWidgetBuilder? itemBuilder; /// A [MapController], used to control the map. - final CarouselControllerImpl _carouselController; + final CarouselSliderControllerImpl _carouselController; final int? itemCount; @@ -44,8 +44,8 @@ class CarouselSlider extends StatefulWidget { : itemBuilder = null, itemCount = items != null ? items.length : 0, _carouselController = carouselController != null - ? carouselController as CarouselControllerImpl - : CarouselSliderController() as CarouselControllerImpl, + ? carouselController as CarouselSliderControllerImpl + : CarouselSliderController() as CarouselSliderControllerImpl, super(key: key); /// The on demand item builder constructor @@ -58,8 +58,8 @@ class CarouselSlider extends StatefulWidget { Key? key}) : items = null, _carouselController = carouselController != null - ? carouselController as CarouselControllerImpl - : CarouselSliderController() as CarouselControllerImpl, + ? carouselController as CarouselSliderControllerImpl + : CarouselSliderController() as CarouselSliderControllerImpl, super(key: key); @override @@ -68,7 +68,7 @@ class CarouselSlider extends StatefulWidget { class CarouselSliderState extends State with TickerProviderStateMixin { - final CarouselControllerImpl carouselController; + final CarouselSliderControllerImpl carouselController; Timer? timer; CarouselOptions get options => widget.options; From 5f57a6c2feb9f9c061fec261039e4dfa567f22f8 Mon Sep 17 00:00:00 2001 From: serenader2014 Date: Fri, 9 Aug 2024 08:57:58 +0800 Subject: [PATCH 03/12] bump version to 5.0.0 --- CHANGELOG.md | 4 +++ .../macos/Runner.xcodeproj/project.pbxproj | 11 +++--- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- example/macos/Runner/AppDelegate.swift | 2 +- lib/carousel_options.dart | 34 +++++++++---------- pubspec.yaml | 2 +- 6 files changed, 30 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 559a6bb..a98ba31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 5.0.0 + +- [FIX] Rename CarouselController to CarouselSliderController + # 4.2.1 - [FIX] temporary remove `PointerDeviceKind.trackpad` diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj index cc89c87..d9ae3f4 100644 --- a/example/macos/Runner.xcodeproj/project.pbxproj +++ b/example/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -182,7 +182,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -235,6 +235,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -344,7 +345,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -423,7 +424,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -470,7 +471,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index ae8ff59..ec9aa6b 100644 --- a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Bool { return true diff --git a/lib/carousel_options.dart b/lib/carousel_options.dart index aef2664..e19b85c 100644 --- a/lib/carousel_options.dart +++ b/lib/carousel_options.dart @@ -135,31 +135,31 @@ class CarouselOptions { CarouselOptions({ this.height, - this.aspectRatio: 16 / 9, - this.viewportFraction: 0.8, - this.initialPage: 0, - this.enableInfiniteScroll: true, - this.animateToClosest: true, - this.reverse: false, - this.autoPlay: false, - this.autoPlayInterval: const Duration(seconds: 4), + this.aspectRatio = 16 / 9, + this.viewportFraction = 0.8, + this.initialPage = 0, + this.enableInfiniteScroll = true, + this.animateToClosest = true, + this.reverse = false, + this.autoPlay = false, + this.autoPlayInterval = const Duration(seconds: 4), this.autoPlayAnimationDuration = const Duration(milliseconds: 800), - this.autoPlayCurve: Curves.fastOutSlowIn, + this.autoPlayCurve = Curves.fastOutSlowIn, this.enlargeCenterPage = false, this.onPageChanged, this.onScrolled, this.scrollPhysics, this.pageSnapping = true, - this.scrollDirection: Axis.horizontal, - this.pauseAutoPlayOnTouch: true, - this.pauseAutoPlayOnManualNavigate: true, - this.pauseAutoPlayInFiniteScroll: false, + this.scrollDirection = Axis.horizontal, + this.pauseAutoPlayOnTouch = true, + this.pauseAutoPlayOnManualNavigate = true, + this.pauseAutoPlayInFiniteScroll = false, this.pageViewKey, - this.enlargeStrategy: CenterPageEnlargeStrategy.scale, - this.enlargeFactor: 0.3, - this.disableCenter: false, + this.enlargeStrategy = CenterPageEnlargeStrategy.scale, + this.enlargeFactor = 0.3, + this.disableCenter = false, this.padEnds = true, - this.clipBehavior: Clip.hardEdge, + this.clipBehavior = Clip.hardEdge, }); ///Generate new [CarouselOptions] based on old ones. diff --git a/pubspec.yaml b/pubspec.yaml index d4e9fef..92f1e32 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: carousel_slider description: A carousel slider widget, support infinite scroll and custom child widget. homepage: https://github.com/serenader2014/flutter_carousel_slider repository: https://github.com/serenader2014/flutter_carousel_slider -version: 4.2.1 +version: 5.0.0 environment: sdk: '>=2.12.0 <3.0.0' From 0f90e8a9e085f28c4235d262b6277d9925ba0812 Mon Sep 17 00:00:00 2001 From: serenader2014 Date: Fri, 9 Aug 2024 09:01:08 +0800 Subject: [PATCH 04/12] update document --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf69829..77ff514 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Note: this page is built with flutter-web. For a better user experience, please ## Installation -Add `carousel_slider: ^4.2.1` to your `pubspec.yaml` dependencies. And import it: +Add `carousel_slider: ^5.0.0` to your `pubspec.yaml` dependencies. And import it: ```dart import 'package:carousel_slider/carousel_slider.dart'; From b309c35edf108d90f02412a7f429d8167a077ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20P=C3=BChringer?= Date: Mon, 19 Aug 2024 18:06:38 +0200 Subject: [PATCH 05/12] Fix for Flutter 3.24.x --- lib/carousel_slider.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index 9910c8b..0eb3006 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -4,7 +4,7 @@ import 'dart:async'; import 'package:carousel_slider/carousel_state.dart'; import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; +import 'package:flutter/material.dart' hide CarouselController; import 'carousel_controller.dart'; import 'carousel_options.dart'; From be4a86895407704951fc35278d6bf1e43162e609 Mon Sep 17 00:00:00 2001 From: liang baoxian Date: Wed, 30 Oct 2024 10:23:35 +0800 Subject: [PATCH 06/12] fix: Fixed spacing calculation error in RTL mode --- lib/carousel_slider.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index e64ae29..0dfd4e8 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -365,6 +365,12 @@ class CarouselSliderState extends State } } + // Check if the text direction is right-to-left (RTL) + if (Directionality.of(context) == TextDirection.rtl) { + // If RTL, invert the item offset + itemOffset = -itemOffset; + } + final double enlargeFactor = options.enlargeFactor.clamp(0.0, 1.0); final num distortionRatio = From f0bc06b95df1b2b1b82f9d193c69945ac6af4489 Mon Sep 17 00:00:00 2001 From: frybitsinc Date: Wed, 23 Apr 2025 17:38:24 +0900 Subject: [PATCH 07/12] add PointerDeviceKind.stylus to dragDevices for Apple Pencil support --- lib/carousel_slider.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index e64ae29..534ca47 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -308,6 +308,7 @@ class CarouselSliderState extends State dragDevices: { PointerDeviceKind.touch, PointerDeviceKind.mouse, + PointerDeviceKind.stylus, }, ), clipBehavior: widget.options.clipBehavior, From c1a12cefa3f8d2e56f03bbc6d354d217fd3158b7 Mon Sep 17 00:00:00 2001 From: wangyongqi Date: Tue, 27 May 2025 17:57:00 +0800 Subject: [PATCH 08/12] fix RangeError (length): Invalid value: Valid value range is empty: 0 --- lib/carousel_slider.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index e64ae29..afdc522 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -333,7 +333,9 @@ class CarouselSliderState extends State animation: carouselState!.pageController!, child: (widget.items != null) ? (widget.items!.length > 0 ? widget.items![index] : Container()) - : widget.itemBuilder!(context, index, idx), + : ((widget.itemCount ?? 0) > 0 + ? widget.itemBuilder!(context, index, idx) + : const SizedBox.shrink()), builder: (BuildContext context, child) { double distortionValue = 1.0; // if `enlargeCenterPage` is true, we must calculate the carousel item's height From a6bd67e5f976ea90ef1a89dcb0b5a7aaaf96b2c3 Mon Sep 17 00:00:00 2001 From: serenader2014 Date: Sat, 7 Jun 2025 15:09:33 +0800 Subject: [PATCH 09/12] update version --- CHANGELOG.md | 5 +++++ README.md | 2 +- example/ios/Flutter/AppFrameworkInfo.plist | 2 +- example/ios/Runner.xcodeproj/project.pbxproj | 13 ++++++++----- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- example/ios/Runner/AppDelegate.swift | 2 +- example/ios/Runner/Info.plist | 2 ++ pubspec.yaml | 2 +- 8 files changed, 20 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a98ba31..4c73d37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 5.1.0 + +- [Feat] Support Apple Pencil +- [Fix] Fix RangeError (length): Invalid value: Valid value range is empty: 0 + # 5.0.0 - [FIX] Rename CarouselController to CarouselSliderController diff --git a/README.md b/README.md index 77ff514..3858fb9 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Note: this page is built with flutter-web. For a better user experience, please ## Installation -Add `carousel_slider: ^5.0.0` to your `pubspec.yaml` dependencies. And import it: +Add `carousel_slider: ^5.1.0` to your `pubspec.yaml` dependencies. And import it: ```dart import 'package:carousel_slider/carousel_slider.dart'; diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d2..8c6e561 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 3ef0cbd..bc07d89 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -127,7 +127,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -171,10 +171,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -185,6 +187,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -272,7 +275,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -358,7 +361,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -407,7 +410,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6..e67b280 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ CADisableMinimumFrameDurationOnPhone + UIApplicationSupportsIndirectInputEvents + diff --git a/pubspec.yaml b/pubspec.yaml index 92f1e32..34d532d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: carousel_slider description: A carousel slider widget, support infinite scroll and custom child widget. homepage: https://github.com/serenader2014/flutter_carousel_slider repository: https://github.com/serenader2014/flutter_carousel_slider -version: 5.0.0 +version: 5.1.0 environment: sdk: '>=2.12.0 <3.0.0' From 4f1c41bb63011073e047d548405ad380ae2749ca Mon Sep 17 00:00:00 2001 From: serenader2014 Date: Sat, 7 Jun 2025 15:15:05 +0800 Subject: [PATCH 10/12] update sdk version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 34d532d..036c271 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ repository: https://github.com/serenader2014/flutter_carousel_slider version: 5.1.0 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.12.0 <4.0.0' dependencies: flutter: From 938a7f2b209a352b4faab7185b187f830369d414 Mon Sep 17 00:00:00 2001 From: serenader2014 Date: Sat, 7 Jun 2025 15:26:02 +0800 Subject: [PATCH 11/12] fix lint error --- CHANGELOG.md | 4 ++++ README.md | 2 +- lib/carousel_slider.dart | 4 ++-- pubspec.yaml | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c73d37..73faede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 5.1.1 + +- [Fix] Fix lint issue + # 5.1.0 - [Feat] Support Apple Pencil diff --git a/README.md b/README.md index 3858fb9..c23cc96 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Note: this page is built with flutter-web. For a better user experience, please ## Installation -Add `carousel_slider: ^5.1.0` to your `pubspec.yaml` dependencies. And import it: +Add `carousel_slider: ^5.1.1` to your `pubspec.yaml` dependencies. And import it: ```dart import 'package:carousel_slider/carousel_slider.dart'; diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index 176bb5f..44ea6c7 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -13,7 +13,7 @@ import 'utils.dart'; export 'carousel_controller.dart'; export 'carousel_options.dart'; -typedef Widget ExtendedIndexedWidgetBuilder( +typedef ExtendedIndexedWidgetBuilder = Widget Function( BuildContext context, int index, int realIndex); class CarouselSlider extends StatefulWidget { @@ -333,7 +333,7 @@ class CarouselSliderState extends State return AnimatedBuilder( animation: carouselState!.pageController!, child: (widget.items != null) - ? (widget.items!.length > 0 ? widget.items![index] : Container()) + ? (widget.items!.isNotEmpty ? widget.items![index] : Container()) : ((widget.itemCount ?? 0) > 0 ? widget.itemBuilder!(context, index, idx) : const SizedBox.shrink()), diff --git a/pubspec.yaml b/pubspec.yaml index 036c271..a9b16ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: carousel_slider description: A carousel slider widget, support infinite scroll and custom child widget. homepage: https://github.com/serenader2014/flutter_carousel_slider repository: https://github.com/serenader2014/flutter_carousel_slider -version: 5.1.0 +version: 5.1.1 environment: sdk: '>=2.12.0 <4.0.0' From 1f0af80300a9351bd0c6b4b5787a99de14e0eb66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Pu=CC=88hringer?= Date: Mon, 12 Jan 2026 10:47:16 +0100 Subject: [PATCH 12/12] Revert unneeded change --- lib/carousel_slider.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/carousel_slider.dart b/lib/carousel_slider.dart index f14f1b0..37865c5 100644 --- a/lib/carousel_slider.dart +++ b/lib/carousel_slider.dart @@ -4,7 +4,7 @@ import 'dart:async'; import 'package:carousel_slider/carousel_state.dart'; import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart' hide CarouselController; +import 'package:flutter/material.dart'; import 'carousel_controller.dart'; import 'carousel_options.dart';