8.7 发布—WinterCG 兼容性第一部分
了解更多

<ActionBar> 是 NativeScript 对 Android ActionBar 和 iOS NavigationBar 的抽象。它代表活动窗口顶部的工具栏,可以包含标题、应用程序级导航以及其他自定义交互项目。

也属于 ActionBar 抽象的视图

xml
<ActionBar title="MyApp" />

示例

带有自定义标题视图的 ActionBar

xml
<ActionBar>
  <GridLayout columns="auto, *" width="100%">
    <Image src="~/assets/icon.png" width="40" height="40" />
    <Label text="Custom Title" fontSize="24" />
  </GridLayout>
</ActionBar>

带有始终可见的 Android 图标的 ActionBar

xml
<ActionBar
  title="ActionBar Title"
  android.icon="res://icon"
  android.iconVisibility="always"
/>

自定义 ActionBar

xml
<ActionBar title="MyApp">
  <!-- explicitly hide the back button -->
  <NavigationButton visibility="collapsed" />

  <!-- show a Font Awesome icon on the left -->
  <ActionItem
    position="left"
    icon="font://&#xf0a8;"
    class="fas"
    tap="goBack"
  />

  <!-- Show a custom ActionItem on the right -->
  <ActionItem ios.position="right">
    <GridLayout width="100">
      <Button text="Action Item" />
    </GridLayout>
  </ActionItem>
</ActionBar>

注意

在 iOS 上,设置 color 只会影响标题和操作项目。

在 Android 上,color 只会影响标题。您可以通过在 App_Resources\Android\values\styles.xml 中设置 actionMenuTextColor 来设置操作项目的默认颜色。

从 ActionBar 中移除边框

默认情况下,ActionBar 底部会绘制一个边框。除了边框之外,iOS 上还会在 ActionBar 上应用半透明过滤器。要移除边框和半透明效果,请设置 flat="true"

xml
<ActionBar title="MyApp" flat="true" />

属性

title

ts
title: string

获取或设置 ActionBar 标题。

titleView

ts
titleView: View

用自定义视图替换 title 属性。

注意:这是在 xml 中定义自定义子视图时设置的属性(除非是 ActionItem 或 NavigationButton 的实例)。

查看 View.

flat

ts
flat: boolean

移除 Android 上的边框和 iOS 上的半透明效果。

默认为 false

ts
navigationButton: NavigationButton

获取或设置导航按钮(后退按钮)。

查看 NavigationButton.

actionItems

ts
actionItems: ActionItems

获取或设置 ActionItems。

查看 ActionItem.

iosIconRenderingMode

ts
actionBar.iosIconRenderingMode

获取或设置 iOS 中 ActionBar 图标的 UIImage.RenderingMode

可用值

  • automatic
  • alwaysTemplate
  • automatic

默认为 alwaysOriginal

ActionItem

<ActionItem> 是用于向 ActionBar 添加操作按钮的 UI 组件。

xml
<ActionBar title="MyApp">
  <ActionItem
    ios.systemIcon="9" ios.position="left"
    android.systemIcon="ic_menu_share" android.position="actionBar" />
  <ActionItem
    ios.systemIcon="16" ios.position="right"
    text="delete" android.position="popup" />
</ActionBar>

ActionItem 属性

text

ts
text: string

获取或设置 ActionItem 的文本。

icon

ts
icon: string

获取或设置操作项目的图标。支持本地图像 (~/)、资源 (res://) 和字体图标 (fonts://)

ios.position

ts
ios.position: 'left' | 'right'

设置 iOS 上 ActionItem 的位置。仅限 iOS。

可用值

  • left:将项目放置在 ActionBar 的左侧。
  • right:将项目放置在 ActionBar 的右侧。

默认为 left

android.position

ts
android.position: 'actionBar' | 'popup' | 'actionBarIfRoom'

设置 Android 上 ActionItem 的位置。仅限 Android。

可用值

  • actionBar:将项目放置在 ActionBar 中。操作项可以以文本或图标两种方式呈现。
  • popup:将项目放置在选项菜单中。项目将以文本形式呈现。
  • actionBarIfRoom:如果 ActionBar 有空间,则将项目放置在 ActionBar 中。否则,将其放置在选项菜单中。

默认为 actionBar

ios.systemIcon

ts
ios.systemIcon: string

使用 UIBarButton.SystemIcon 设置 ActionItem 的图标。仅限 iOS。

android.systemIcon

xml
android.systemIcon: string

设置 ActionItem 的图标。有关系统图标列表,请参考 R.drawable仅限 Android。

查看 R.drawable.

actionBar

ts
actionBar: ActionBar

获取包含 ActionItem 的 ActionBar。

<NavigationButton> 是一个 UI 组件,提供对 Android 导航按钮和 iOS 后退按钮的抽象。

xml
<ActionBar title="MyApp">
  <NavigationButton text="Go back" android.systemIcon="ic_menu_back" />
</ActionBar>

平台特定行为

iOS 特定

在 iOS 上,NavigationButton 的默认文本是前一页的标题,后退按钮显式用于导航。它导航到前一页,不允许覆盖此行为。如果您需要在 <ActionBar> 的左侧放置一个自定义按钮(例如,显示抽屉按钮),可以使用具有 ios.position="left" 的 ActionItem。

Android 特定

在 Android 上,您无法在 NavigationButton 内添加文本。您可以使用 icon 属性设置图像(例如,~/images/nav-image.pngres:\\ic_nav)。您可以使用 android.systemIcon 设置 Android 中可用的系统图标之一。在这种情况下,NavigationButton 点击事件没有默认行为,而是会调用传递的回调函数。

text

ts
text: string

设置后退按钮的文本。仅限 iOS。

android.systemIcon

ts
android.systemIcon: string

要显示在按钮中的图标。您可以指定任何以 ic_ 前缀开头的系统图标。有关可用图标的完整列表,请查看 R.drawable仅限 Android。

查看 R.drawable

原生组件

ActionBar

ActionItem

上页
Page