npm i --save nativescript-bottom-navigation
- 版本:2.0.5
- GitHub:https://github.com/henrychavez/nativescript-bottom-navigation
- NPM:https://npmjs.net.cn/package/nativescript-bottom-navigation
- 下载量
- 昨天:1
- 上周:26
- 上个月:154
Nativescript 材料设计底部导航栏
遵循材料设计指南的 Android 和 iOS 底部导航栏的 NativeScript 插件。
重要:本包将弃用,这是本仓库的最后一个版本,该组件将迁移到 nativescript-material-components

内容
先决条件 / 要求
您需要 NS6 或更高版本才能使用此插件。
安装
tns plugin add nativescript-bottom-navigation
如果您想使用 NS5 及以上版本的插件,请使用版本 1.5.1
tns plugin add nativescript-bottom-navigation@1.5.1
重大变更
BottomNavigation
类现在为BottomNavigationBar
NativescriptBottomNavigationModule
现为NativeScriptBottomNavigationBarModule
res://
应用于引用标签中的图标- 事件接口的
On
前缀已移除- 例如:
OnTabPressedEventData
现为TabPressedEventData
- 例如:
- 移除了 CSS 属性的
tab
前缀- 例如:
tab-active-color
现为active-color
- 例如:
- 文档已更新,请查看:D
新功能
Badge
现支持使用方法:showBadge(index, value)
- 注意:如果您想显示一个带有红点的徽章,则不应向函数传递值。
用法
在开始使用插件之前,您需要将 android 和 iOS 的图标添加到您的 App_Resources
目录中。
XML
您可以使用 tabs
属性设置选项卡
<Page xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:mdc="nativescript-bottom-navigation"
loaded="pageLoaded"
class="page">
<GridLayout rows="*, auto">
<StackLayout row="0">
<Label text="content"></Label>
</StackLayout>
<mdc:BottomNavigationBar
tabs="{{ tabs }}"
activeColor="green"
inactiveColor="red"
backgroundColor="black"
tabSelected="tabSelected"
row="1"
></mdc:BottomNavigationBar>
</GridLayout>
</Page>
import { EventData } from 'tns-core-modules/data/observable';
import { Page } from 'tns-core-modules/ui/page';
import {
BottomNavigationTab,
TabSelectedEventData,
} from 'nativescript-bottom-navigation';
// Event handler for Page 'loaded' event attached in main-page.xml
export function pageLoaded(args: EventData) {
// Get the event sender
let page = <Page>args.object;
page.bindingContext = {
tabs: [
new BottomNavigationTab({ title: 'First', icon: 'res://ic_home' }),
new BottomNavigationTab({
title: 'Second',
icon: 'res://ic_view_list',
isSelectable: false,
}),
new BottomNavigationTab({ title: 'Third', icon: 'res://ic_menu' }),
],
};
}
export function tabSelected(args: TabSelectedEventData) {
console.log('tab selected ' + args.newIndex);
}
或者您可以直接在 xml 视图中添加选项卡
<Page xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:mdc="nativescript-bottom-navigation"
loaded="pageLoaded"
class="page">
<GridLayout rows="*, auto">
<StackLayout row="0">
<Label text="content"></Label>
</StackLayout>
<mdc:BottomNavigationBar
activeColor="green"
inactiveColor="red"
backgroundColor="black"
tabSelected="tabSelected"
row="1"
>
<mdc:BottomNavigationTab title="First" icon="res://ic_home" />
<mdc:BottomNavigationTab title="Second" icon="res://ic_view_list" isSelectable="false" />
<mdc:BottomNavigationTab title="Third" icon="res://ic_menu" />
</mdc:BottomNavigationBar>
</GridLayout>
</Page>
Angular
首先,您需要在您的 app.module.ts
中包含 NativeScriptBottomNavigationBarModule
import { NativeScriptBottomNavigationBarModule} from "nativescript-bottom-navigation/angular";
@NgModule({
imports: [
NativeScriptBottomNavigationBarModule
],
...
})
<GridLayout rows="*, auto">
<StackLayout row="0">
<label text="content"></label>
</StackLayout>
<BottomNavigationBar
[tabs]="tabs"
activeColor="red"
inactiveColor="yellow"
backgroundColor="black"
(tabSelected)="onBottomNavigationTabSelected($event)"
(tabPressed)="onBottomNavigationTabPressed($event)"
row="1"
></BottomNavigationBar>
</GridLayout>
或者您可以直接在 html 中声明 BottomNavigationTab
<GridLayout rows="*, auto">
<StackLayout row="0">
<label text="content"></label>
</StackLayout>
<BottomNavigationBar
activeColor="red"
inactiveColor="yellow"
backgroundColor="black"
(tabSelected)="onBottomNavigationTabSelected($event)"
(tabPressed)="onBottomNavigationTabPressed($event)"
row="1"
>
<BottomNavigationTab
title="First"
icon="res://ic_home"
></BottomNavigationTab>
<BottomNavigationTab
title="Second"
icon="res://ic_view_list"
[isSelectable]="false"
></BottomNavigationTab>
<BottomNavigationTab
title="Third"
icon="res://ic_menu"
></BottomNavigationTab>
</BottomNavigationBar>
</GridLayout>
Vue
如果您想使用 Vue,请在您的 app.js
或 main.js
中这样做
import BottomNavigationBar from 'nativescript-bottom-navigation/vue';
Vue.use(BottomNavigationBar);
这将安装并注册 BottomNavigationBar
和 BottomNavigationTab
组件到您的 Vue
实例中,现在您可以使用插件如下
<GridLayout rows="*, auto">
<StackLayout row="0">
<label text="content"></label>
</StackLayout>
<BottomNavigationBar
activeColor="red"
inactiveColor="yellow"
backgroundColor="black"
@tabSelected="onBottomNavigationTabSelected"
row="1"
>
<BottomNavigationTab title="First" icon="ic_home" />
<BottomNavigationTab
title="Second"
icon="ic_view_list"
isSelectable="false"
/>
<BottomNavigationTab title="Third" icon="ic_menu" />
</BottomNavigationBar>
</GridLayout>
有关如何使用 Vue 与 NativeScript 插件的更多信息,请参阅这里!
CSS 样式
您还可以使用您的 css 文件来设置或更改底部导航栏的 activeColor
,inactiveColor
和 backgroundColor
。
.botom-nav {
active-color: green;
inactive-color: black;
background-color: blue;
}
API
- 属性(可绑定):通过 XML/HTML 设置的属性
- 属性(内部):通过 JS/TS 实例可访问的属性
- 事件:通过 XML/HTML 设置的事件属性
底部导航栏
属性(可绑定)
属性 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
tabs | true | [] | Array |
包含 BottomNavigationBar 的标签数组 |
titleVisibility | false | 标题可见性.已选择 |
标题可见性 |
每个底部导航标签的标题可见性 |
活动颜色 | false | "黑色" | 字符串 |
当底部导航标签被选中时的颜色 |
非活动颜色 | false | "灰色" | 字符串 |
当底部导航标签未被选中时的颜色 |
背景颜色 | false | "白色" | 字符串 |
底部导航背景的颜色 |
属性(内部)
属性 | 默认 | 类型 | 描述 |
---|---|---|---|
selectedTabIndex | 0 | 数字 |
选中标签的索引 |
titleVisibility | 标题可见性.已选择 |
标题可见性 |
每个底部导航标签的标题可见性 |
活动颜色 | "黑色" | 字符串 |
当底部导航标签被选中时的颜色 |
非活动颜色 | "灰色" | 字符串 |
当底部导航标签未被选中时的颜色 |
背景颜色 | "白色" | 字符串 |
底部导航背景的颜色 |
事件
名称 | 类型 | 描述 |
---|---|---|
tabPressed | (args: TabPressedEventData): void |
每当用户点击一个不可选的标签(isSelectable: false)时触发的函数 |
tabSelected | (args: TabSelectedEventData): void |
每当用户选择一个新的标签时触发的函数 |
tabReselected | (args: TabReselectedEventData): void |
每当用户选择一个已选中的标签时触发的函数 |
方法
属性 | 类型 | 描述 |
---|---|---|
selectTab(index: number) |
void |
程序选择一个标签 |
showBadge(index: number, value?: number) |
void |
显示特定标签的徽章 |
底部导航标签
属性(可绑定)
属性 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
title | true | null | 字符串 |
标签的标题 |
icon | true | null | 字符串 |
标签的图标 |
isSelectable | false | true | 布尔值 |
确定标签是否可选 |