NativeScript でアイコンフォント付きボトムタブバー
はじめに
NativeScript(NativeScript-Vue) でアイコンフォント(FontAwesome)付きのボトムタブバーを表示する方法。
TL;DR
BottomNavigation
を使う- Android, iOS ともに問題なし
- NativeScript-Vue でアイコンとテキストを同時に表示する場合は
<Image src.decode />
TabView
- Android は問題ないが、iOS でアイコンフォントが表示されない
目次
環境・条件
1 | $ sw_vers |
詳細
前置き
FontAwesome の利用方法は以下参照。
ボトムタブバー については以下参照。
TabView を使った場合
TabView
だと、iOS ではうまく表示できない。
1 | <template> |
Android(emulator)
iOS(simulator)
BottomNavigation を使った場合
BottomNavigation
だと、Android, iOS ともにアイコンフォントが表示できる。
1 | <template> |
Android(emulator)
iOS(simulator)
アイコンフォントとテキストを同時に表示
NativeScipt 側ドキュメントを読むと、以下のような記述となっている。
1 | <BottomNavigation selectedIndex="1"> |
素の NativeScript であれば上記で問題ないようだが、NativeScript-Vue の場合は以下のように <Image src.decode />
で記述しなければアイコンフォントの表示が上手くいかないので注意。
参考:
1 | <BottomNavigation selectedIndex="1"> |
また、残念なことに src:decode
が v-bind
に非対応のため :src.decode="`font://&#x${icon_font_code}`"
のような記述もできない。
なお選択中タブのスタイルは TabStripItem:active
で変更可能。
参考: Styling - BottomNavigation - NativeScript Docs
1 | <style scoped lang="scss"> |
まとめ
BottomNavigation
を使う- Android, iOS ともに問題なし
- NativeScript-Vue でアイコンとテキストを同時に表示する場合は
<Image src.decode />
TabView
- Android は問題ないが、iOS でアイコンフォントが表示されない
その他・メモ
後述の公式ドキュメント、StackOverflow などのサイトを見て回ったが、TabView
でアイコンフォントを表示する方法を見つけきれなかった。
(自分が見つけられていないだけで、TabView
でもうまく表示する方法はあるかもしれない。)
参考文献
- BottomNavigation - NativeScript Docs
- TabView - NativeScript Docs
- Image - NativeScript-Vue
- How to display font awesome 5 icons in the tabview · Issue #6701 · NativeScript/NativeScript
- vue.js - How to add Font-awesome icon to tabview in Nativescript Vue platform - Stack Overflow
- Icon fonts not working for TabView tabs title on iOS · Issue #4302 · NativeScript/NativeScript
- Nativescript-vue Font Icon - Image Tag - Stack Overflow
関連記事
- NativeScript, JsBarcode でバーコードを 生成/描画
- NativeScript でデバイスの輝度(明るさ)を制御する
- NativeScript-Vue でネイテイブアプリの開発(チュートリアル + α)
- NativeScript-Vue で QRコードの読取り
- NativeScript で入力範囲外タップでキーボードを非表示にする
- NativeScript + Firebase でプッシュ通知
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア