需要包裹一个可滑动区域,当可滑动时,会显示滑动的bar用于指示。

相关组件

ListView SingleChildScrollView CupertinoScrollbar

Scrollbar基本使用

【child】 : 子组件 【Widget】
【controller】 : 控制器 【ScrollController】
158.gif

  1. import 'package:flutter/material.dart';
  2. class CustomScrollbar extends StatelessWidget {
  3. final data = <Color>[
  4. Colors.purple[50],
  5. Colors.purple[100],
  6. Colors.purple[200],
  7. Colors.purple[300],
  8. Colors.purple[400],
  9. Colors.purple[500],
  10. Colors.purple[600],
  11. Colors.purple[700],
  12. Colors.purple[800],
  13. Colors.purple[900],
  14. ];
  15. @override
  16. Widget build(BuildContext context) {
  17. return Container(
  18. height: 200,
  19. child: Scrollbar(
  20. child: ListView(
  21. padding: EdgeInsets.symmetric(horizontal: 5),
  22. children: data
  23. .map((color) => Container(
  24. alignment: Alignment.center,
  25. width: 100,
  26. height: 50,
  27. color: color,
  28. child: Text(
  29. colorString(color),
  30. style: TextStyle(color: Colors.white, shadows: [
  31. Shadow(
  32. color: Colors.black,
  33. offset: Offset(.5, .5),
  34. blurRadius: 2)
  35. ]),
  36. ),
  37. ))
  38. .toList(),
  39. ),
  40. ),
  41. );
  42. }
  43. String colorString(Color color) =>
  44. "#${color.value.toRadixString(16).padLeft(8, '0').toUpperCase()}";
  45. }