thumbVisibility property

bool? thumbVisibility
final

Indicates that the scrollbar thumb should be visible, even when a scroll is not underway.

When false, the scrollbar will be shown during scrolling and will fade out otherwise.

When true, the scrollbar will always be visible and never fade out. This requires that the Scrollbar can access the ScrollController of the associated Scrollable widget. This can either be the provided controller, or the PrimaryScrollController of the current context.

Defaults to false when null.

link
// (e.g. in a stateful widget)

final ScrollController controllerOne = ScrollController();
final ScrollController controllerTwo = ScrollController();

@override
Widget build(BuildContext context) {
return Column(
  children: <Widget>[
    SizedBox(
       height: 200,
       child: Scrollbar(
         thumbVisibility: true,
         controller: controllerOne,
         child: ListView.builder(
           controller: controllerOne,
           itemCount: 120,
           itemBuilder: (BuildContext context, int index) {
             return Text('item $index');
           },
         ),
       ),
     ),
     SizedBox(
       height: 200,
       child: CupertinoScrollbar(
         thumbVisibility: true,
         controller: controllerTwo,
         child: SingleChildScrollView(
           controller: controllerTwo,
           child: const SizedBox(
             height: 2000,
             width: 500,
             child: Placeholder(),
           ),
         ),
       ),
     ),
   ],
  );
}

See also:

Subclass Scrollbar can hide and show the scrollbar thumb in response to MaterialStates by using ScrollbarThemeData.thumbVisibility.

Implementation

final bool? thumbVisibility;