Xamarin.FormsのTabbedPageでバッジを表示する

公開日: : 最終更新日:2016/11/03 Blog, Microsoft , , , , ,

iOSのタブバーはNative側でバッジ機能があるのだが、Androidにはそもそもバッジが無いらしい。
カスタムレンダラーで頑張って作ってみようと思ったら既にあった…。

GitHub : xamarin-forms-tab-badge
License : MIT
※プレリリース(2016/10/31)

NuGetで取得

  • ソリューションエクスプローラーでソリューションを右クリックし、ソリューションの NuGet パッケージの管理(N)を選択
  • プレリリースを含めるにチェック
  • Plugin.Badgeを検索し、全プロジェクトにインストール

iOS側のレンダラー登録

xxx.iOSの/Properties/AssemblyInfo.csに以下を追加

【余談】
XF標準のTabbedPageTabbedRendererを継承したBadgedTabbedPageRendererを指定することでXFは標準コントロールのままでネイティブ側の動きだけをカスタマイズできるの知らなかった。
XF側も継承コントロール必須だと思ってた。

Android側のレンダラー登録

Android側もAndroid用のレンダラーを登録
xxx.Droidの/Properties/AssemblyInfo.csに以下を追加

Forms側で使う

  • TabbedPageはXF標準のものでOK

  • 各ページに設定されたPlugin.Badge.Abstractions.TabBadge.BadgeTextがバッジのテキストとして表示される。

  • TabBadgeBadgeColorでバッジの色を指定

  • 空文字またはnullでバッジを非表示にできる(※現在iOSは空文字だとクリアされずに空バッジが表示されるっぽい
    Issue挙げたら速攻対応してくれた【2016/11/03追記】

※ChildrenがNavigationPageなのは深い意味はない。

実行結果

  • Android
    badge-droid

  • iOS
    badge-ios

関連記事

UWPでユニットテスト

ユニバーサルWindowsのアプリケーションプロジェクトおよびクラスライブラリプロジェクトのユニット

記事を読む

no image

【XAML/VB.NET】XAMLファイルを帳票フォーマットとして使用する

掲題について。結論としてはFixedPageをルートとするXAMLファイルを XamlReader

記事を読む

WordPressでスパムコメント対策

WordPressのスパムコメント対策を行ったのでメモ。 標準でAkismetがインストール済み(

記事を読む

no image

【Swift】SecItemCopyMatchingで複数件を処理

SecItemCopyMatchingを使ってKeyChainからデータを取得する時に 全件取得し

記事を読む

Xamarin iOS, Android での位置情報、Bluetoothの有効化メモ

OSが勝手に出してくれたりくれなかったりのところを整理するためのメモ 諸事情によりサンプルはXama

記事を読む

【.NET Framework 4.6.1】MultiLineなTextBoxでCtrl+Aが使えない問題が解決(今更)

WinForms.NETなアプリケーションの標準TextBoxで、Multiline=Trueに設定

記事を読む

no image

macOSのVSTSビルドエージェント構築過程で、type initializeで例外が発生し接続に失敗する問題の対応

macOS Sierra (10.12.4) Deploy an agent on OSX Xa

記事を読む

no image

【VB.NET】DataGridViewで行の最大高を設定

DataGridViewにおける行の最大高さを設定するメモ 最大高さに満たない場合は内容を全て表示

記事を読む

no image

【Xcode】Capabilities全項目【v6.1時点】

Capabilitiesの各項目が何を示しているのか よくわからなかった、かつ日本語のサイトが少な

記事を読む

no image

Xamarin.Forms で ScrollView の中に Map を配置したとき、Androidで地図のスクロールが出来なくなる

iOSは問題ないけど、AndroidはScrollViewにタッチを持ってかれてる感じ。 カスタ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑