ユーザーインターフェイス / コンポーネント / BottomNavigation

ボトムナビゲーション

このBottomNavigationコンポーネントは、iOSとAndroidプラットフォームの両方に共通のUIを提供しながら、さまざまなビュー間を移動する簡単な方法を提供します。 推奨されるシナリオは、それぞれが個別の機能を持つ3〜5個のタブを備えた高レベルのナビゲーションです。 ボトムナビゲーションの追加情報と詳細については、マテリアルデザインガイドラインを参照してください。

注釈: NativeScript 6ではBottomNavigationおよびTabsという2つの新しいUIコンポーネントが導入されました。 それらの背後にある考え方は、CSSスタイリング、アイコンフォントのサポート、およびその他の特定の機能を強化しながら、タブベースのUIを構築する際により多くの制御を提供することです。 NativeScript 6より前、TabViewは、異なるプラットフォームといくつかのスタイリングの制限に対して異なる動作をするトップ実装とボトム実装を持つコンポーネントがありました。 BottomNavigaitonTabsが利用可能となったいま、TabViewは時代遅れと見なすことができます。

BottomNavigationコンポーネントの特徴:

コンポーネントの主な目的:

制限事項

使用法

BottomNavigationコンポーネントは、2つのサブコンポーネントが含まれています。

<BottomNavigation 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>

		<!--
			The below two conventions (shorthand vs exteded syntax) are identical in UI outcome but the second one will provide you with greater control over your TabStripItem UI.
			When using the first shorthand syntax then your Icon Font CSS class should be set on the BottomNavigation element.
		 -->
		<!-- <TabStripItem title="Search" iconSource="font://&#xf00e;"></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>

</BottomNavigation>
注釈: TabStripItemコンポーネントの数は、TabContentItemコンポーネントの数と等しくなければなりません。

デモソース


スタイリング

<!-- BottomNavigation supports the CSS properties `background-color` and `color` -->
	<BottomNavigation selectedIndex="1" class="bottom-nav">

		<!-- TabStripItem supports the CSS pseudo selector :active (see theming-page.css) -->
		<TabStrip>
			<TabStripItem class="tabstripitem">
				<Label text="Home"></Label>
				<Image src="font://&#xf015;" class="fas t-36"></Image>
			</TabStripItem>
			<TabStripItem class="tabstripitem">
				<Label text="Account"></Label>
				<Image src="font://&#xf007;" class="fas t-36"></Image>
			</TabStripItem>
			<TabStripItem class="tabstripitem">
				<Label text="Search"></Label>
				<Image src="font://&#xf00e;" class="fas t-36"></Image>
			</TabStripItem>
		</TabStrip>

		<TabContentItem class="first-tabcontent">
			<GridLayout>
				<Label text="Home Page" horizontalAlignment="center" verticalAlignment="middle"/>
			</GridLayout>
		</TabContentItem>
		<TabContentItem class="second-tabcontent">
			<GridLayout>
				<Label text="Account Page" horizontalAlignment="center" verticalAlignment="middle"/>
			</GridLayout>
		</TabContentItem>
		<TabContentItem class="third-tabcontent">
			<GridLayout>
				<Label text="Search Page" horizontalAlignment="center" verticalAlignment="middle"/>
			</GridLayout>
		</TabContentItem>

	</BottomNavigation>
TabStripItem.tabstripitem {
	background-color: teal;
}

TabStripItem.tabstripitem: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;
}

.fas {
	font-family: "Font Awesome 5 Free", "fa-solid-900";
	font-weight: 900;
}

.t-36 {
	font-size: 36;
}

デモソース


プロパティ

BottomNavigationプロパティ

名前タイプ説明
itemsArray<TabContentItem>BottomNavigationの項目を取得または設定します。
selectedIndexnumberBottomNavigationのselectedIndexを取得または設定します。
tabStripTabStripBottomNavigationのタブストリップを取得または設定します。

TabStripプロパティ

名前タイプ説明
iosIconRenderingMode"automatic", "alwaysOriginal", "alwaysTemplate"iOSのアイコンレンダリングモードを取得または設定します。
isIconSizeFixedbooleantrueに設定すると、プラットフォーム固有の設計ガイドラインに従ってアイコンサイズが固定されます。デフォルト値:true
itemsArray<TabStripItem>TabStripのストリップ項目の配列を取得または設定します。

TabStripItemプロパティ

名前タイプ説明
titlestringタブストリップエントリのタイトルを取得または設定します。
iconSourcestringタブストリップエントリのアイコンソースを取得または設定します。ローカル画像パス(~)、リソース画像(res://)およびアイコンフォント(font://)をサポートします。
imageImageタブストリップエントリの画像を取得または設定します。
labelLabelタブストリップエントリのラベルを取得または設定します。

イベント

BottomNavigationイベント

名前説明
selectedIndexChangedselectedIndexプロパティが変更されたときに生成されます。
loadedビューがロードされたときに生成されます。
unloadedビューがアンロードされたときに生成されます。
layoutChangedビューのレイアウト境界がレイアウト処理のために変更されたときに生成されます。

TabStripイベント

名前説明
itemTapTabStripItemがタップされたときに生成されます。

TabStripItemイベント

名前説明
tapTabStripItemがタップされたときに生成されます。

APIリファレンス

名前タイプ
BottomNavigationClass
TabStripClass
TabStripItemClass
TabContentItemClass

ネイティブコンポーネント

ANDROIDIOS
FrameLayout UITabViewController
入門

コアコンセプト

ユーザーインターフェース

ツール

ハードウェアアクセス

プラグインの開発

リリース

アプリテンプレート

パフォーマンスの最適化

フレームワークモジュール

ガイド

サポートを受ける

トラブルシューティング

Siedkick