如何在 Flutter 中创建带有底部彩色边框的 AppBar?

Posted

技术标签:

【中文标题】如何在 Flutter 中创建带有底部彩色边框的 AppBar?【英文标题】:How to create an AppBar with a bottom coloured border in Flutter? 【发布时间】:2019-04-22 21:54:30 【问题描述】:

我想创建一个像这样的应用栏,它有一个底部边框和一个可以使用高度来完成的阴影。有人可以提供一个示例代码 sn-p 来实现这个

【问题讨论】:

【参考方案1】:

可能是这样的

AppBar(
   bottom: PreferredSize(
      child: Container(
         color: Colors.orange,
         height: 4.0,
      ),
      preferredSize: Size.fromHeight(4.0)),
   )

【讨论】:

【参考方案2】:

如果您想要一个真正可定制的设计,理想情况下您应该制作自己的应用栏。示例:

class MyAppbar extends StatelessWidget implements PreferredSizeWidget 
  final Widget title;

  const MyAppbar(Key key, this.title) : super(key: key);

  @override
  Widget build(BuildContext context) 
    return Material(
      elevation: 26.0,
      color: Colors.white,
      child: Container(
        padding: const EdgeInsets.all(10.0),
        alignment: Alignment.centerLeft,
        decoration: BoxDecoration(
          border: Border(
            bottom: BorderSide(
              color: Colors.deepOrange,
              width: 3.0,
              style: BorderStyle.solid,
            ),
          ),
        ),
        child: title,
      ),
    );
  

  final Size preferredSize = const Size.fromHeight(kToolbarHeight);

【讨论】:

【参考方案3】:

如果你只想在 AppBar 底部使用一个小部件,我就是这样做的:

appBar: AppBar(
        title: Text('Soroush!'),
        bottom: PreferredSize(
            child: Container(
              color: Colors.white,
              child: TextFormField(),
            ),
            preferredSize: Size.fromHeight(kToolbarHeight)),

【讨论】:

【参考方案4】:

现在 AppBar 中有一个 shadowColor 属性,您可以像这样轻松使用它:

AppBar( shadowColor : Colors.blue )

【讨论】:

【参考方案5】:
AppBar(elevation: 1, backgroundColor:Colors.orange,)

【讨论】:

您能否提供一些上下文来解释您的代码以及您的答案为何有效?【参考方案6】:

您可以使用 AppBar 的 shape 属性来实现:

AppBar(
  shape: Border(
    bottom: BorderSide(
      color: Colors.orange,
      width: 4
    )
  ),
  elevation: 4,
  /* ... */
)

【讨论】:

以上是关于如何在 Flutter 中创建带有底部彩色边框的 AppBar?的主要内容,如果未能解决你的问题,请参考以下文章

在 HTML 中创建只有底部边框的表格

如何在颤动中创建带有文本和分隔符的详细信息框

如何在带有边框的 ext js 中创建 Layout 2X2 布局?

如何在 Flutter 中创建带有圆角的模态底页?

如何在 React Native 中创建对角线边框?

如何在 Flutter 中创建这种形状?