📅  最后修改于: 2023-12-03 14:53:01.650000             🧑  作者: Mango
在实现 AppBar 左对齐的功能之前,我们需要了解一下 AppBar 的布局方式和构成要素。
AppBar 是由以下三个要素构成的:
toolbar(工具栏):通常是一个 Row 组件,包含了 AppBar 中所有的按钮、文本、图标等组件。
title(标题):位于工具栏的中央,可以是文本或者一个图片。
bottom(底部导航区域):位于工具栏的底部,可以是一个 TabBar 或其他组件。
AppBar 的默认布局方式是居中对齐,其中 title 组件居中显示,然后 toolbar 组件居中对齐。如果开发者想要实现 AppBar 上按钮的左对齐,则需要在 toolbar 组件上使用一个前缀组件来占用左侧空间。
AppBar(
toolbar: Row(
children: [
IconButton(icon: Icon(Icons.menu), onPressed: () {...}),
Text('MyApp'),
IconButton(icon: Icon(Icons.search), onPressed: () {...}),
],
),
title: Text('MyApp'),
);
在 toolbar 组件中添加 SizedBox 组件,并设置宽度等于 MediaQuery.of(context).padding.left。由于左侧空间可能会因为系统的状态栏、导航栏等组件的存在而发生变化,所以需要使用 MediaQuery.of(context).padding.left 获取左侧空间的大小。
AppBar(
toolbar: Row(
children: [
SizedBox(
width: MediaQuery.of(context).padding.left,
),
IconButton(icon: Icon(Icons.menu), onPressed: () {...}),
Text('MyApp'),
IconButton(icon: Icon(Icons.search), onPressed: () {...}),
],
),
title: Text('MyApp'),
);
通过添加一个 SizedBox 组件,将 IconButton 组件从左侧空间开始,从而实现了AppBar 上按钮的左对齐。