[flutter专题]详解AppBar小部件

  • 应用栏布局

  • 自定义 AppBar

Flutter 中的 AppBar 是什么?


Flutter AppBar 是根据Material Design指南构建的应用程序组件。它通常位于屏幕顶部,并且能够在其布局中包含其他小部件。AppBar 通常显示品牌信息,例如徽标和标题,并且通常包含按钮或其他用户交互点。

以下是 Flutter 中默认的 AppBar 的样子:

// Mostly, AppBar is used inside a Scaffold widget.

Scaffold(

appBar: AppBar(),

),

应用栏布局


在Flutter中,AppBar的布局主要包括三个组成部分:leadingtitle,和actionsleading放置在AppBar的最左边位置;titleactions出现在它的右边。

Flutter AppBar 布局

leading

leading 接受一个小部件,可以分配任何东西——文本、图标,甚至一行中的多个小部件。

AppBar(

leading: Icon(Icons.account_circle_rounded),

),

Flutter AppBar 领先

您可以控制leading可以占用多少宽度:

AppBar(

leading: Icon(Icons.account_circle_rounded),

leadingWidth: 100, // default is 56

),

Flutter AppBar 前导宽度

如果leading未提供,AppBar 会自动为我们暗示。示例包括返回上一页的导航箭头或打开抽屉的菜单图标。

当上一条路线可用时,导航箭头会自动出现。

class HomePage extends StatelessWidget {

@override

Widget build(BuildContext context) {

return Scaffold(

body: Center(

child: TextButton(

child: Text(‘Push’),

onPressed: () => Navigator.push(context, MaterialPageRoute(

builder: (context) {

return SecondPage();

},

)),

),

),

);

}

}

class SecondPage extends StatelessWidget {

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(),

);

}

}

Flutter AppBar 导航箭头

当我们将 添加Drawer到Scaffold时 ,会分配一个菜单图标leading来打开抽屉。

class HomePage extends StatelessWidget {

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(),

drawer: Drawer(),

);

}

}

Flutter AppBar 菜单图标

如果需要,可以通过设置automaticallyImplyLeadingfalse来防止这种行为。

AppBar(

automaticallyImplyLeading: false, // simple as that!

),

title

顾名思义,它主要用于显示标题,例如应用程序标题或页眉。

AppBar(

title: Text(‘Profile Page’),

),

Flutter AppBar 标题

但您不仅限于此,因为也title需要一个小部件。您可以使用它来显示图标、图像、形状或使用布局小部件(例如row和 )的任意组合column

下面是一个例子:

AppBar(

title: Container(

width: 40,

child: Image.network(url),

),

),

Flutter AppBar 标题图片

默认情况title下,根据 Material 指南与 AppBar 的左侧对齐。您可以更改此设置以使其居中对齐:

AppBar( title: Container( width: 40, child: Image.network(url), ), centerTitle: true, // like this!),

Flutter AppBar 中心标题

actions

actions是与 AppBar 右侧对齐的小部件列表。我们通常在用作按钮的应用程序中看到它们来触发下拉菜单、个人资料头像等。

AppBar( actions: [ Icon(Icons.more_vert), ],),

Flutter AppBar 操作图标

让我们再向列表中添加一个小部件:

AppBar( actions: [ Container( width: 30, child: Image.asset( ‘assets/images/profile_pic.png’, ), ), Icon(Icons.more_vert), ],),

在 Flutter 中自定义 AppBar


现在我们熟悉了 AppBar 的布局,让我们通过使用主题选项将自定义提升到一个新的水平。AppBar 包含各种属性,包括颜色、大小、图标主题、文本主题等等。

背景颜色

以下代码将 AppBar 的背景颜色更改为深橙色。500添加以访问颜色的特定阴影,900即最暗和最亮50

AppBar( backgroundColor: Colors.deepOrange[500],),

结尾

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~


《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~

[外链图片转存中…(img-VIlZRCmV-1714966674857)]

[外链图片转存中…(img-MwX4CRkX-1714966674858)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值