Skip to content

Commit

Permalink
Added carousel size constraint, carousel fading transition, carousel …
Browse files Browse the repository at this point in the history
…sliding transition, carousel dot indicator widget, and more carousel examples
  • Loading branch information
sunarya-thito committed Oct 30, 2024
1 parent 50920c3 commit e064491
Show file tree
Hide file tree
Showing 6 changed files with 568 additions and 139 deletions.
11 changes: 5 additions & 6 deletions docs/lib/pages/docs/components/carousel/carousel_example_1.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,16 @@ class _CarouselExample1State extends State<CarouselExample1> {
child: SizedBox(
height: 200,
child: Carousel(
gap: 24,
snapAlignment: CarouselAlignment.center,
// frameTransform: Carousel.fadingTransform,
transition: const CarouselLayout.sliding(gap: 24),
controller: controller,
sizeFactor: 0.8,
autoplaySpeed: const Duration(seconds: 1),
sizeConstraint: const CarouselFixedConstraint(200),
autoplaySpeed: const Duration(seconds: 2),
itemCount: 5,
// wrap: false,
itemBuilder: (context, index) {
return NumberedContainer(index: index);
},
duration: const Duration(seconds: 2),
duration: const Duration(seconds: 1),
),
),
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ class _CarouselExample2State extends State<CarouselExample2> {
child: SizedBox(
width: 200,
child: Carousel(
gap: 24,
snapAlignment: CarouselAlignment.center,
transition: const CarouselLayout.sliding(gap: 24),
alignment: CarouselAlignment.center,
controller: controller,
direction: Axis.vertical,
sizeFactor: 0.8,
sizeConstraint: const CarouselFixedConstraint(200),
itemBuilder: (context, index) {
return NumberedContainer(index: index);
},
Expand Down
61 changes: 61 additions & 0 deletions docs/lib/pages/docs/components/carousel/carousel_example_3.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import 'package:shadcn_flutter/shadcn_flutter.dart';

import '../carousel_example.dart';

class CarouselExample3 extends StatefulWidget {
const CarouselExample3({super.key});

@override
State<CarouselExample3> createState() => _CarouselExample3State();
}

class _CarouselExample3State extends State<CarouselExample3> {
final CarouselController controller = CarouselController();
@override
Widget build(BuildContext context) {
return SizedBox(
width: 800,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
height: 200,
child: Carousel(
transition: const CarouselLayout.fading(),
controller: controller,
draggable: false,
autoplaySpeed: const Duration(seconds: 1),
itemCount: 5,
itemBuilder: (context, index) {
return NumberedContainer(index: index);
},
duration: const Duration(seconds: 1),
),
),
const Gap(8),
Row(
mainAxisSize: MainAxisSize.min,
children: [
CarouselDotIndicator(itemCount: 5, controller: controller),
const Spacer(),
OutlineButton(
shape: ButtonShape.circle,
onPressed: () {
controller
.animatePrevious(const Duration(milliseconds: 500));
},
child: const Icon(Icons.arrow_back)),
const Gap(8),
OutlineButton(
shape: ButtonShape.circle,
onPressed: () {
controller.animateNext(const Duration(milliseconds: 500));
},
child: const Icon(Icons.arrow_forward)),
],
),
],
),
);
}
}
34 changes: 34 additions & 0 deletions docs/lib/pages/docs/components/carousel/carousel_example_4.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import 'package:shadcn_flutter/shadcn_flutter.dart';

import '../carousel_example.dart';

class CarouselExample4 extends StatefulWidget {
const CarouselExample4({super.key});

@override
State<CarouselExample4> createState() => _CarouselExample4State();
}

class _CarouselExample4State extends State<CarouselExample4> {
final CarouselController controller = CarouselController();
@override
Widget build(BuildContext context) {
return SizedBox(
width: 800,
height: 200,
child: Carousel(
transition: const CarouselLayout.sliding(gap: 24),
controller: controller,
draggable: false,
autoplaySpeed: const Duration(seconds: 2),
curve: Curves.linear,
itemCount: 5,
sizeConstraint: const CarouselSizeConstraint.fixed(200),
itemBuilder: (context, index) {
return NumberedContainer(index: index);
},
duration: Duration.zero,
),
);
}
}
12 changes: 12 additions & 0 deletions docs/lib/pages/docs/components/carousel_example.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
import '../../widget_usage_example.dart';
import '../component_page.dart';
import 'carousel/carousel_example_2.dart';
import 'carousel/carousel_example_3.dart';
import 'carousel/carousel_example_4.dart';

class CarouselExample extends StatelessWidget {
const CarouselExample({super.key});
Expand All @@ -26,6 +28,16 @@ class CarouselExample extends StatelessWidget {
path: 'lib/pages/docs/components/carousel/carousel_example_2.dart',
child: CarouselExample2(),
),
WidgetUsageExample(
title: 'Fading Carousel Example',
path: 'lib/pages/docs/components/carousel/carousel_example_3.dart',
child: CarouselExample3(),
),
WidgetUsageExample(
title: 'Continuous Sliding Carousel Example',
path: 'lib/pages/docs/components/carousel/carousel_example_4.dart',
child: CarouselExample4(),
),
],
);
}
Expand Down
Loading

0 comments on commit e064491

Please sign in to comment.