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

相关组件

ListView SingleChildScrollView Scrollbar

CupertinoScrollbar基本使用

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

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