应用栏由工具栏和可能的其他视图组成。 公开一项或多项操作。
使用 appbar 的主要好处是能够自定义所有内容。 自定义选项,例如:
注意: AppBar 是一个跨平台视图,当原生导航栏达到其限制时会接管,例如添加自定义内容、使用布局定位等。
在 Xamarin.Forms 中,应用栏通常用于Shell.AppBar属性,它将应用栏作为固定高度的小部件放置在屏幕顶部。
接下来是一个包含 AppBar 属性和事件的列表。
| 物业 | 类型 | 说明 |
|---------|:-------------:|:-------------:|
| 安置 | AppBarPlacement | AppBar 位置(顶部或底部)。 |
| 酒吧高度 | 双 | 定义应用栏高度。 |
| 酒吧背景 | 刷子 | 提供背景的画笔。 |
| 酒吧背景图片 | 图片来源 | 提供背景的 ImageSource。 |
| 条形文字颜色 | 颜色 | 文本中使用的颜色(标题等)。 |
| 导航图标 | 图片来源 | 提供导航图标(后退按钮等)的 ImageSource。 |
| 返回按钮标题 | 字符串 | 定义应用栏后退按钮标题。 |
| 边框颜色 | 颜色 | 应用栏边框颜色。 |
| 边框厚度 | 厚度 | 每边的应用栏边框宽度。 |
| 字体家族 | 字符串 | 应用栏文本中使用的字体系列。 |
| 字体属性 | 字体属性 | 应用栏文本中使用的字体属性。 |
| 字体大小 | 双 | 应用栏文本中使用的字体大小。 |
| 标题视图 | 查看 | 在应用栏中显示任何 Xamarin.Forms 视图。 |
| 返回命令 | ICommand | 执行导航返回的命令。 |
| 返回命令参数 | 对象 | 用于向后导航的命令参数。 |
| 活动 | 说明 |
|---------|:-------------:|
| BackTapped | 用户导航返回时引发的事件。 |
让我们看一些涵盖常见场景的示例。
让我们看一个基本的例子:
<Shell>
<Shell.AppBar>
<AppBar />
</Shell.AppBar>
...
</Shell>
使用具有自定义高度和自定义内容 (TitleView) 的透明条自定义外观。
<Shell>
<Shell.AppBar>
<AppBar
BarHeight="120"
BarBackgroundColor="Transparent">
<AppBar.TitleView>
...
</AppBar.TitleView>
</AppBar>
</Shell.AppBar>
...
</Shell>
顶部应用栏(默认放置)在移动屏幕顶部显示导航和操作。
<Shell>
<Shell.AppBar
Placement="Top">
<AppBar />
</Shell.AppBar>
...
</Shell>
底部应用栏在移动屏幕底部显示导航和操作。
<Shell>
<Shell.AppBar
Placement="Bottom">
<AppBar />
</Shell.AppBar>
...
</Shell>
可以使用XAML样式或CSS自定义选项卡内容、选项卡条、选项卡项等的外观。
使用 XAML:
<Style
x:Key="AppBarStyle"
TargetType="AppBar">
<Setter
Property="BarHeight"
Value="120" />
<Setter
Property="BarBackgroundColor"
Value="Transparent" />
</Style>
使用 CSS:
.appBarStyle {
background: transparent;
height: 120px;
}
请管理并且,我认为优先支持标准导航页面!
不是所有的都使用 Shell 的导航,主要是 Enterprise Application 或基于 Xamarin Forms 的 Big Application!!
谢谢!!
是的,我很想使用这个控件,并且在 Shell 之前有应用程序,这些应用程序很难转换为 shell
它只是一个复合表单视图
您可以将其用作 CollectionView 的单元格并拥有无限数量的 AppBar
为什么不在 BackButtonTitle 中使用 View 类型而不是 String?
这些现在正在迁移到 Xamarin 社区工具包
@PureWeen 它将如何工作? 我在 Xamarin 社区工具包存储库中没有看到 AppBar 的已打开问题。
最有用的评论
请管理并且,我认为优先支持标准导航页面!
不是所有的都使用 Shell 的导航,主要是 Enterprise Application 或基于 Xamarin Forms 的 Big Application!!
谢谢!!