slider_custom_sh 1.0.0
slider_custom_sh: ^1.0.0 copied to clipboard
A customizable Flutter carousel slider with drag gestures, custom image widgets, and optional questions/answers.
my_custom_slider #
A customizable Flutter carousel slider with smooth drag gestures, keyboard navigation, custom image widgets, and optional questions and answer buttons. Perfect for creating interactive image carousels, quizzes, or onboarding flows with a modern, animated UI.
Features #
- Smooth Navigation: Navigate through images using drag gestures or keyboard arrow keys (ideal for web and desktop apps).
- Custom Image Widgets: Supports any Flutter widget as carousel items, including
Image.asset,Image.network, or custom UI elements. - Interactive Questions and Answers: Display questions with customizable answer buttons for each slide.
- Flexible Animations: Configure animation curves and durations for smooth transitions.
- Customizable Styling: Adjust colors, padding, font sizes, and image dimensions to match your app’s design.
- Accessibility: Includes semantics for screen readers to improve accessibility.
- No External Dependencies: Lightweight and built with core Flutter widgets.

Getting Started #
Prerequisites #
- Flutter SDK:
>=3.0.0 <4.0.0 - Dart SDK:
>=3.0.0 <4.0.0 - A Flutter project to integrate the package.
Installation #
- Add
my_custom_sliderto yourpubspec.yaml:dependencies: my_custom_slider: ^1.0.0 flutter pub get import 'package:my_custom_slider/my_custom_slider.dart'; import 'package:flutter/material.dart'; import 'package:my_custom_slider/my_custom_slider.dart';
void main() { runApp(const MyApp()); }
class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key);
@override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: const Text('Custom Slider Example')), body: SliderView( imageWidgets: [ Image.asset('assets/images/image1.jpg', fit: BoxFit.cover), Image.network('https://example.com/image2.jpg', fit: BoxFit.cover), Container( color: Colors.red, child: const Center(child: Text('Custom Widget')), ), ], questions: ['What is this?', 'Choose one:', 'Final question?'], answerButtonBuilder: (index) => [ ElevatedButton( onPressed: () => print('Option 1'), child: const Text('Option 1'), ), ElevatedButton( onPressed: () => print('Option 2'), child: const Text('Option 2'), ), ], animationCurve: Curves.bounceOut, animationDuration: const Duration(milliseconds: 500), primaryColor: Colors.teal, secondaryColor: Colors.tealAccent, onIndexChanged: (index) => print('Current index: $index'), ), ), ); } }