2016-06-20 11 views
2

Xamarin Forms 2でAndroidの選択したタブのアイコンをLinkedInアプリケーションと同様に変更する必要があります。Xamarinフォーム - タブがアクティブな場合、タブアイコンを変更する

これは私のコードですが、それは仕事をdoens't:

private void LoadTab(string title, string selectedIcon, string unselectedIcon) 
{ 
    var tab = new ContentPage(); 
    if (Device.OS == TargetPlatform.iOS) tab.Title = title; 
    tab.Icon = new FileImageSource() { File = selectedIcon }; 
    tab.Appearing += (s, a) => tab.Icon = new FileImageSource() { File = selectedIcon }; 
    tab.Disappearing += (s, a) => tab.Icon = new FileImageSource() { File = unselectedIcon }; 
    Children.Add(tab); 
} 

私はまたPagesChangedイベントに試してみたが、結果は同じです。

W/FragmentManager(30781): moveToState: Fragment state for FragmentContainer{e26ef3e #3 id=0x2 android:switcher:2:565409837} not updated inline; expected state 3 found 2 

答えて

4

は、あなただけのアイコンとしてpngファイルを使用する代わりにselector drawable xmlを作成する必要があります。私は、ページを変更したとき

これは、ロガーが書き込みをするものです。 例:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/selectedIcon" android:state_selected="true"></item> 
<item android:drawable="@drawable/selectedIcon" android:state_pressed="true"></item> 
<item android:drawable="@drawable/unselectedIcon"></item> 

drawableフォルダにアンドロイドのプロジェクトでそれを入れてください。

、その後:あなたはそれが機能する

+0

感謝を条件をチェックするために tab.Icon = new FileImageSource() { File = iconSelector };

必要はありません! –

+0

こんにちは、私はこれを適用しようとしています。しかし、 "File = iconSelector"のiconSelectorは何ですか? TabIconSelector.xmlを作成し、そのコードをAndroidプロジェクトに配置しました。 –

+0

@MatteoBortolazzo –

関連する問題