How to Build a Carousel in Flutter

Building a carousel in Flutter is an easy and straightforward process. Whether you're a beginner or an advanced Flutter developer, you can quickly learn how to use the carousel_slider package to create a beautiful carousel in your app. In this article, we'll walk you through the prerequisites, installation, and construction of a carousel in Flutter. We'll also cover how to customize its appearance and handle carousel events.

flutter carousel

Prerequisites

To build a carousel in Flutter, you'll need to have the following:

Creating a Flutter Project

The first step in creating a carousel in Flutter is to create a new Flutter project. To do this, open the terminal and enter the following command:

flutter create <project name>

Replace <project name> with the name of the project. This will create a new Flutter project with the given name.

Once you have created the project, the next step is to install the carousel_slider package into your project. To do this, open the pubspec.yaml file and add the following line under dependencies:

carousel_slider: ^1.4.1

Save the file and run the following command in the terminal:

flutter pub get

This will install the carousel_slider package into your project.

Now that you have installed the carousel_slider package, you can start building the carousel. To do this, open the main.dart file and import the carousel_slider package:

import 'package:carousel_slider/carousel_slider.dart';

Next, create a list of images that you want to display in the carousel:

List<String> imageList = [
  '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'
];

Now, you can create the carousel widget in the build() method:

CarouselSlider(
  items: imageList.map((item) => Container(
    child: ClipRRect(
      borderRadius: BorderRadius.all(Radius.circular(5.0)),
      child: Image.network(item, fit: BoxFit.cover),
    ),
  )).toList(),
  autoPlay: true,
  aspectRatio: 2.0,
  viewportFraction: 0.8,
)

The above code will create a carousel that displays the images in the imageList array. The carousel will automatically play the images in an infinite loop.

The carousel_slider package provides several options to customize the carousel's appearance. For example, you can change the aspect ratio, viewport fraction, and more.

For example, you can set the aspect ratio to 2.0 and the viewport fraction to 0.8, as shown in the example above. You can also set the autoPlay option to true or false to enable or disable the auto-play feature.

In addition, you can also add additional options, such as the onPageChanged option, which is used to handle the carousel events.

The carousel_slider package also provides a way to handle carousel events. The onPageChanged option is used to handle the carousel events. This option takes a callback function as an argument. The callback function is triggered whenever the carousel page is changed.

For example, you can use the onPageChanged option to print the current page index in the console:

onPageChanged: (index) {
  print('Current Page Index: $index');
},

You can also use the onPageChanged option to perform certain actions when the carousel page is changed.

Conclusion

In this article, we have covered how to build a carousel in Flutter using the carousel_slider package. We have also discussed how to customize the carousel's appearance and handle carousel events. With a few lines of code, you can easily create a beautiful carousel in your app.