auto_scrolling 0.1.0 copy "auto_scrolling: ^0.1.0" to clipboard
auto_scrolling: ^0.1.0 copied to clipboard

Enables auto scrolling in a scrollable (ListView, GridView, etc.) by using tertiary mouse button (mouse wheel click).

example/lib/main.dart

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Auto Scroll Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Auto Scroll Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final ScrollController controller = ScrollController();
  bool isVertical = true;

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
        actions: [
          Row(
            children: [
              Text(isVertical ? 'Vertical' : 'Horizontal'),
              const SizedBox(width: 4),
              Switch(
                value: isVertical,
                onChanged: (value) => setState(() => isVertical = value),
              ),
            ],
          ),
        ],
      ),
      body: AutoScroll(
        controller: controller,
        scrollDirection: isVertical ? Axis.vertical : Axis.horizontal,
        child: ListView.builder(
          controller: controller,
          scrollDirection: isVertical ? Axis.vertical : Axis.horizontal,
          itemCount: 100,
          itemBuilder: (_, index) => Container(
            height: isVertical ? 500 : double.infinity,
            width: isVertical ? double.infinity : 500,
            color: colorForIndex(index),
          ),
        ),
      ),
    );
  }

  Color colorForIndex(int index) {
    if (index % 5 == 0) return Colors.blue;
    if (index % 5 == 1) return Colors.red;
    if (index % 5 == 2) return Colors.orange;
    if (index % 5 == 3) return Colors.green;
    if (index % 5 == 4) return Colors.purple;

    return Colors.black;
  }
}
copied to clipboard
4
likes
0
points
60
downloads

Publisher

verified publisherkeepascent.com

Weekly Downloads

2024.09.24 - 2025.04.08

Enables auto scrolling in a scrollable (ListView, GridView, etc.) by using tertiary mouse button (mouse wheel click).

Homepage
Repository (GitHub)
View/report issues

Topics

#scroll #autoscroll #mouse

License

unknown (license)

Dependencies

flutter

More

Packages that depend on auto_scrolling