How to have a scrollbar view in Flutter?

8,478

Solution 1

You can use this project

The pubspec.yaml

dev_dependencies:
  flutter_test:
    sdk: flutter
  draggable_scrollbar: 0.0.4

The code:

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

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

class MyApp extends StatelessWidget {
  ScrollController _rrectController = ScrollController();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Test",
      home: Scaffold(
        body: Center(
          child: DraggableScrollbar.rrect(
            controller: _rrectController,
            backgroundColor: Colors.blue,
            child: ListView.builder(
              controller: _rrectController,
              itemCount: 100,
              itemExtent: 100.0,
              itemBuilder: (context, index) {
                return Container(
                  padding: EdgeInsets.all(8.0),
                  child: Material(
                    elevation: 4.0,
                    borderRadius: BorderRadius.circular(4.0),
                    color: Colors.green[index % 9 * 100],
                    child: Center(
                      child: Text(index.toString()),
                    ),
                  ),
                );
              },
            ),
          ),
        ),
      ),
    );
  }
}

The result: enter image description here

Solution 2

Flutter now has Scrollbar widget.

Just wrap SingleChildScrollView or any ScrollView widget with Scrollbar.

Code sample:

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Scrollbar(
        // Child can also be SingleChildScrollView, GridView, etc.
        child: ListView.builder(
          itemCount: 20,
          itemBuilder: (context, index) {
            return ListTile(
              title: Text('Index $index'),
            );
          },
        ),
      ),
    );
  }
}

Screenshot

Scrollbar (Widget of the week) : https://youtu.be/DbkIQSvwnZc

Share:
8,478
Humayun Rahi
Author by

Humayun Rahi

Updated on December 01, 2022

Comments

  • Humayun Rahi
    Humayun Rahi over 1 year

    enter image description here

    I want to have a scrollbar view like the one in the picture.

    So how can I have it using flutter?

    I've tried

    SingleChildScrollView(
      ....
    ),
    

    But no scroll bars appeared and I don't know to make them

    • Inguss
      Inguss almost 5 years
      You can find your answer there
    • Humayun Rahi
      Humayun Rahi almost 5 years
      I am trying to do it in flutter
  • Nanotron
    Nanotron about 2 years
    Please format using code blocks for legibility