如何更改 AppBar 的阴影颜色?

6 dart flutter

我正在尝试更改 的阴影高程颜色,AppBar但找不到任何属性。我也去了原来的实现,但找不到任何属性来改变阴影颜色。

AppBar(
        title: Image.asset(
          "images/toolbar_logo.webp",
          width: 80,
          height: 50,
        ),
        centerTitle: true,
        backgroundColor: white,
      ),
Run Code Online (Sandbox Code Playgroud)

我不能把AppBar里面包裹起来Material Widget。我知道我可以避免应用栏属性并创建一个自定义类并将其添加到我的主体中Scaffold,但是是否可以使用 的阴影颜色进行更改AppBar

Jor*_*ies 8

没有办法改变默认阴影的颜色,但你可以通过将你AppBar的 a包裹在小部件Container内来解决它PreferredSize

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: PreferredSize(
          child: Container(
            decoration: BoxDecoration(boxShadow: [
              BoxShadow(
                color: Colors.red,
                offset: Offset(0, 2.0),
                blurRadius: 4.0,
              )
            ]),
            child: AppBar(
              elevation: 0.0,
              title: Text("Test"),
            ),
          ),
          preferredSize: Size.fromHeight(kToolbarHeight),
        ),
        body: Container(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)


Gyu*_*sik 7

接受的答案有点过时了。您可以通过两种方式执行此操作:

直接通过AppBar属性更改:

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(shadowColor: Colors.green),
        body: Container(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

或者通过使用Theme

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        appBarTheme: AppBarTheme(
          shadowColor: Colors.white,
        ),
      ),
      home: Scaffold(
        appBar: AppBar(),
        body: Container(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)