[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],),

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
246018)]

[外链图片转存中…(img-KRMChmiO-1715789246020)]

[外链图片转存中…(img-D6OVvb6e-1715789246021)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值