// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; /// Flutter code sample for [RawScrollbar.shape]. void main() => runApp(const ShapeExampleApp()); class ShapeExampleApp extends StatelessWidget { const ShapeExampleApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( home: ShapeExample(), ); } } class ShapeExample extends StatelessWidget { const ShapeExample({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: RawScrollbar( shape: const StadiumBorder(side: BorderSide(color: Colors.brown, width: 3.0)), thickness: 15.0, thumbColor: Colors.blue, thumbVisibility: true, child: ListView( // On mobile platforms, setting primary to true is not required, as // the PrimaryScrollController automatically attaches to vertical // ScrollPositions. On desktop platforms however, using the // PrimaryScrollController requires ScrollView.primary be set. primary: true, physics: const BouncingScrollPhysics(), children: List.generate(100, (int index) => Text((index * index).toString())), ), ), ); } }