nativescript-material-tabs
Material Tabs 组件
npm i --save nativescript-material-tabs

npm npm GitHub forks GitHub stars

安装

如果使用 @nativescript

  • tns plugin add nativescript-material-tabs

确保在添加插件后运行新的构建,以避免任何问题。


Material Design 规范

使用方法

纯 NativeScript

重要:确保在 Page 元素上包含 xmlns:mds="nativescript-material-tabs"

XML

<Page xmlns:mdt="nativescript-material-tabs">
<mdt:Tabs selectedIndex="1">
<!-- The bottom tab UI is created via TabStrip (the containier) and TabStripItem (for each tab)-->
<TabStrip>
<TabStripItem>
<Label text="Home"></Label>
<Image src="font://&#xf015;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Account"></Label>
<Image src="font://&#xf007;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Search"></Label>
<Image src="font://&#xf00e;" class="fas"></Image>
</TabStripItem>
</TabStrip>

<!-- The number of TabContentItem components should corespond to the number of TabStripItem components -->
<TabContentItem>
<GridLayout>
<Label text="Home Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Account Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Search Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
</Tabs>
</Page>

CSS

MDTabs.bottom-nav {
background-color: orangered;
color: gold;
font-size: 18;
}

TabStripItem.tabstripitem-active {
background-color: teal;
}

TabStripItem.tabstripitem-active:active {
background-color: yellowgreen;
}

TabContentItem.first-tabcontent {
background-color: seashell;
color: olive;
}
TabContentItem.second-tabcontent {
background-color: slategray;
color: aquamarine;
}
TabContentItem.third-tabcontent {
background-color: blueviolet;
color: antiquewhite;
}
MDTabs TabStrip {
highlight-color: red;
}

NativeScript + Angular

import { NativeScriptMaterialTabsModule } from "nativescript-material-slider/angular";

@NgModule({
imports: [
NativeScriptMaterialTabsModule,
...
],
...
})
    <MDTabs selectedIndex="1">
<!-- The bottom tab UI is created via TabStrip (the containier) and TabStripItem (for each tab)-->
<TabStrip>
<TabStripItem>
<Label text="Home"></Label>
<Image src="font://&#xf015;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Account"></Label>
<Image src="font://&#xf007;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Search"></Label>
<Image src="font://&#xf00e;" class="fas"></Image>
</TabStripItem>
</TabStrip>

<!-- The number of TabContentItem components should corespond to the number of TabStripItem components -->
<TabContentItem>
<GridLayout>
<Label text="Home Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Account Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Search Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
</MDTabs>

NativeScript + Vue

import TabsPlugin from 'nativescript-material-slider/vue';

Vue.use(TabsPlugin);
<MDTabs selectedIndex="1">
<!-- The bottom tab UI is created via TabStrip (the containier) and TabStripItem (for each tab)-->
<TabStrip>
<TabStripItem>
<Label text="Home"></Label>
<Image src="font://&#xf015;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Account"></Label>
<Image src="font://&#xf007;" class="fas"></Image>
</TabStripItem>
<TabStripItem class="special">
<Label text="Search"></Label>
<Image src="font://&#xf00e;" class="fas"></Image>
</TabStripItem>
</TabStrip>

<!-- The number of TabContentItem components should corespond to the number of TabStripItem components -->
<TabContentItem>
<GridLayout>
<Label text="Home Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Account Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
<TabContentItem>
<GridLayout>
<Label text="Search Page" class="h2 text-center"></Label>
</GridLayout>
</TabContentItem>
</MDTabs>

属性

继承自 Nativescript Tabs,因此已经具有所有相同的属性

属性

名称 类型 描述
items 数组 获取或设置 BottomNavigation 的项。
selectedIndex 数字 获取或设置 BottomNavigation 的 selectedIndex。
swipeEnabled 布尔值 获取或设置 Tabs 的滑动启用状态。
offscreenTabLimit 数字 获取或设置 Tabs 的预加载非屏幕选项卡数量。
tabStrip TabStrip 获取或设置 BottomNavigation 的 tab strip。
tabsPosition "top", "bottom" 获取或设置 Tabs 的位置状态。默认值:top
iOSTabBarItemsAlignment "leading", "justified", "center", "centerSelected" iOS 仅:获取或设置 iOS 中 tab bar 图标的位置对齐方式。默认值:justified

事件

|名称 | 描述| | ------------- |:-------------:| -----:| |selectedIndexChanged | 当 selectedIndex 属性更改时发出。 |loaded | 当视图加载时发出。 |unloaded | 当视图卸载时发出。 |layoutChanged | 当视图的布局边界由于布局处理而更改时发出。