-
应用栏布局
-
自定义 AppBar
Flutter AppBar 是根据Material Design指南构建的应用程序组件。它通常位于屏幕顶部,并且能够在其布局中包含其他小部件。AppBar 通常显示品牌信息,例如徽标和标题,并且通常包含按钮或其他用户交互点。
以下是 Flutter 中默认的 AppBar 的样子:
// Mostly, AppBar is used inside a Scaffold widget.
Scaffold(
appBar: AppBar(),
),
在Flutter中,AppBar的布局主要包括三个组成部分:leading
,title
,和actions
。leading
放置在AppBar的最左边位置;title
并actions
出现在它的右边。
leading
leading
接受一个小部件,可以分配任何东西——文本、图标,甚至一行中的多个小部件。
AppBar(
leading: Icon(Icons.account_circle_rounded),
),
您可以控制leading
可以占用多少宽度:
AppBar(
leading: Icon(Icons.account_circle_rounded),
leadingWidth: 100, // default is 56
),
如果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(),
);
}
}
当我们将 添加Drawer到Scaffold
时 ,会分配一个菜单图标leading
来打开抽屉。
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
drawer: Drawer(),
);
}
}
如果需要,可以通过设置automaticallyImplyLeading
false来防止这种行为。
AppBar(
automaticallyImplyLeading: false, // simple as that!
),
title
顾名思义,它主要用于显示标题,例如应用程序标题或页眉。
AppBar(
title: Text(‘Profile Page’),
),
但您不仅限于此,因为也title
需要一个小部件。您可以使用它来显示图标、图像、形状或使用布局小部件(例如row
和 )的任意组合column
。
下面是一个例子:
AppBar(
title: Container(
width: 40,
child: Image.network(url),
),
),
默认情况title
下,根据 Material 指南与 AppBar 的左侧对齐。您可以更改此设置以使其居中对齐:
AppBar( title: Container( width: 40, child: Image.network(url), ), centerTitle: true, // like this!),
actions
actions
是与 AppBar 右侧对齐的小部件列表。我们通常在用作按钮的应用程序中看到它们来触发下拉菜单、个人资料头像等。
AppBar( actions: [ Icon(Icons.more_vert), ],),
让我们再向列表中添加一个小部件:
AppBar( actions: [ Container( width: 30, child: Image.asset( ‘assets/images/profile_pic.png’, ), ), Icon(Icons.more_vert), ],),
现在我们熟悉了 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开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!