finite_coverflow 1.0.0 copy "finite_coverflow: ^1.0.0" to clipboard
finite_coverflow: ^1.0.0 copied to clipboard

Coverflow slider in flutter which helps you to create amazing slider, carousel and walkthrough sliders

example/lib/main.dart

import 'package:finite_coverflow/finite_coverflow.dart';
import 'package:flutter/material.dart';

void main() => runApp(EntryWidget());

class EntryWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Finite Coverflow Example',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        brightness: Brightness.dark,
      ),
      home: MyApp(),
    );
  }
}

class MyApp extends StatefulWidget {
  // This widget is the root of your application.
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: ListView(
          children: <Widget>[
            ListTile(
              title: Text("Simple Crousel"),
              onTap: () {
                Navigator.push(context, MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: SizedBox(
                          height: 250,
                          child: getSimpleCrousel(),
                        ),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Reverse Crousel"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: SizedBox(
                          height: 250,
                          child: getReverseCrousel(),
                        ),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Item Rotation Crousel"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: SizedBox(
                          height: 250,
                          child: getRotationalCrousel(),
                        ),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Item Variable Scale Crousel"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: SizedBox(
                          height: 250,
                          child: getVariableScaleCrousel(),
                        ),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Item Opacity Control Crousel"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: SizedBox(
                          height: 250,
                          child: getOpacityCrousel(),
                        ),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Simple Stack Slider"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: Center(
                        child: getStackSlider(),
                      ),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Reverse Stack Slider"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: getReverseStackSlider(),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("OverScroll Stack Slider"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    home: Scaffold(
                      body: getOverScrollStackSlider(),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("Gallery Slider"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    theme: ThemeData.dark(),
                    home: Scaffold(
                      body: getGallerySlider(),
                    ),
                  );
                }));
              },
            ),
            ListTile(
              title: Text("WalkThrough Slider"),
              onTap: () {
                Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return MaterialApp(
                    theme: ThemeData.light(),
                    home: Scaffold(
                      body: WalkThroughSliderExample(),
                    ),
                  );
                }));
              },
            ),
          ],
        ),
      ),
    );
  }

  Widget getPage(int index, double position) {
    return Card(
      child: Center(
        child: Text("$index"),
      ),
    );
  }

  Widget getSimpleCrousel() {
    return FinitePager(
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Container(
          color: Colors.deepPurple,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.red,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.yellow,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_3.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.lightBlue,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_4.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.green,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.orange,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
      ],
    );
  }

  Widget getReverseCrousel() {
    return FinitePager(
      reverse: true,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Container(
          color: Colors.deepPurple,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.red,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.yellow,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_3.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.lightBlue,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_4.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.green,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.orange,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
      ],
    );
  }

  Widget getRotationalCrousel() {
    return FinitePager(
      rotationY: 60,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Container(
          color: Colors.deepPurple,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.red,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.yellow,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_3.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.lightBlue,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_4.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.green,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.orange,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
      ],
    );
  }

  Widget getVariableScaleCrousel() {
    return FinitePager(
      scaleX: 0.8,
      scaleY: 0.4,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Container(
          color: Colors.deepPurple,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_1.jpg",
                height: 200,
              ),
            ),
          ),
        ),
        Container(
          color: Colors.red,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_2.jpg",
                height: 200,
              ),
            ),
          ),
        ),
        Container(
          color: Colors.yellow,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_3.jpg",
                height: 200,
              ),
            ),
          ),
        ),
        Container(
          color: Colors.lightBlue,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_4.jpg",
                height: 200,
              ),
            ),
          ),
        ),
        Container(
          color: Colors.green,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_1.jpg",
                height: 200,
              ),
            ),
          ),
        ),
        Container(
          color: Colors.orange,
          child: Center(
            child: Card(
              child: Image.asset(
                "images/watch_2.jpg",
                height: 200,
              ),
            ),
          ),
        ),
      ],
    );
  }

  Widget getOpacityCrousel() {
    return FinitePager(
      opacity: 0.4,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Container(
          color: Colors.deepPurple,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.red,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.yellow,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_3.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.lightBlue,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_4.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.green,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_1.jpg"),
            ),
          ),
        ),
        Container(
          color: Colors.orange,
          child: Center(
            child: Card(
              shape: CircleBorder(),
              child: Image.asset("images/watch_2.jpg"),
            ),
          ),
        ),
      ],
    );
  }

  Widget getStackSlider() {
    return FinitePager(
      pagerType: PagerType.stack,
      scrollDirection: Axis.vertical,
      children: <Widget>[
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building2.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building3.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building4.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building5.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
      ],
    );
  }

  Widget getReverseStackSlider() {
    return FinitePager(
      reverse: true,
      pagerType: PagerType.stack,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building2.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building3.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building4.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building5.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
      ],
    );
  }

  Widget getOverScrollStackSlider() {
    return FinitePager(
      overscroll: -300,
      pagerType: PagerType.stack,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building2.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building3.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building4.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building5.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
      ],
    );
  }

  Widget getGallerySlider() {
    return FinitePager(
      opacity: 0.2,
      scaleX: 0.5,
      scaleY: 0.5,
      overscroll: 0,
      reverse: true,
      pagerType: PagerType.stack,
      scrollDirection: Axis.horizontal,
      children: <Widget>[
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building2.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building3.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building4.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building5.jpg",
            fit: BoxFit.cover,
          ),
        ),
        Card(
          child: Image.asset(
            "images/building1.jpg",
            fit: BoxFit.cover,
          ),
        ),
      ],
    );
  }

}

class WalkThroughSliderExample extends StatefulWidget {
  @override
  _WalkThroughSliderExampleState createState() =>
      _WalkThroughSliderExampleState();
}

class _WalkThroughSliderExampleState extends State<WalkThroughSliderExample> {
  int selectedIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Expanded(
          child: FinitePager(
            pagerType: PagerType.stack,
            overscroll: -200,
            opacity: 0.2,
            scrollDirection: Axis.horizontal,
            onPageChanged: (index) {
              setState(() {
                selectedIndex = index;
              });
            },
            children: <Widget>[
              Container(
                child: Image.asset(
                  "images/building1.jpg",
                  fit: BoxFit.cover,
                ),
              ),
              Container(
                child: Image.asset(
                  "images/building2.jpg",
                  fit: BoxFit.cover,
                ),
              ),
              Container(
                child: Image.asset(
                  "images/building3.jpg",
                  fit: BoxFit.cover,
                ),
              ),
              Container(
                child: Image.asset(
                  "images/building4.jpg",
                  fit: BoxFit.cover,
                ),
              ),
              Container(
                child: Image.asset(
                  "images/building5.jpg",
                  fit: BoxFit.cover,
                ),
              ),
              Container(
                child: Image.asset(
                  "images/building1.jpg",
                  fit: BoxFit.cover,
                ),
              ),
            ],
          ),
        ),
        Container(
          height: 100,
          child: Text(
            "Page ${selectedIndex + 1}",
            style: Theme
                .of(context)
                .textTheme
                .display3
                .copyWith(
              color: Colors.black,
            ),
          ),
        ),
      ],
    );
  }
}
35
likes
30
pub points
51%
popularity

Publisher

unverified uploader

Coverflow slider in flutter which helps you to create amazing slider, carousel and walkthrough sliders

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on finite_coverflow