flutter 如何更改滚动溢出指示器的颜色?

xkftehaa  于 2023-01-21  发布在  Flutter
关注(0)|答案(2)|浏览(246)

当用户滚动到列表或TabView的边缘时,结束边缘上会出现一个蓝色的动画圆圈。
这叫什么,我怎么改变它的颜色?

juud5qan

juud5qan1#

这是android的滚动物理(ClampingScrollPhysics)。
来自源代码和文档:
发光颜色已指定为使用[ThemeData. accentColor]。
也就是说,当你创建你的App时,最好的做法是指定一个自定义的主题,而不是手动应用颜色。
示例:

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      theme: ThemeData(
        brightness: Brightness.light,

        primarySwatch: Colors.grey,
        primaryColor: Colors.grey[50],
        primaryColorBrightness: Brightness.light,

        //this is what you want
        accentColor: Colors.orangeAccent[400],
        accentColorBrightness: Brightness.light,
      ),
      home: Home(),
    );
  }
}

我喜欢使用这个工具来定义主要的和次要的(flutter中称为强调色),并预览小部件。
注:在IO上,物理机制是不同的,允许用户滚动到内容边界之外,但随后将内容弹回到这些边界的边缘(BouncingScrollPhysics)。

uyto3xhc

uyto3xhc2#

自Flutter v2.3.0-0.1.pre以来,主题变更为https://api.flutter.dev/flutter/material/ThemeData/accentColor.html
要设置重音颜色,必须执行类似以下操作

class Themes {
  static final light = ThemeData(
      // Colors
      backgroundColor: Colors.white,
      primaryColor: MyColors.blue,
      splashColor: MyColors.blue,
      cardColor: MyColors.blue,
      hoverColor: MyColors.blue,
      highlightColor: MyColors.blue,
      colorScheme: ColorScheme.light(primary: MyColors.blue),

      // Fonts
      fontFamily: 'Inter');

  static final lightV2 = light.copyWith(
      colorScheme: light.colorScheme.copyWith(secondary: MyColors.blue));
}

并在材料应用程序中分配ligthV2

MaterialApp(
   ...
   theme: Themes.lightV2
   ...
)

相关问题