如何更改AppBar的阴影颜色?

时间:2019-02-06 13:16:56

标签: dart flutter

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

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

我无法将AppBar包装在Material Widget中。 我知道我可以避免使用应用栏属性并创建一个自定义类,然后将其添加到Scaffold的正文中, 但是可以使用AppBar的阴影颜色进行更改吗?

3 个答案:

答案 0 :(得分:2)

无法更改默认阴影的颜色,但是可以通过将AppBar包装在Container小部件内的PreferredSize中来解决它: / p>

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(),
      ),
    );
  }
}

答案 1 :(得分:0)

您可以使用Appbar的shadowColor属性对应用栏下方的阴影进行着色。

答案 2 :(得分:0)

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

直接通过 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(),
      ),
    );
  }
}

或者通过使用 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(),
      ),
    );
  }
}