2016-09-14 84 views
1

在MvvmCross 4.x我創建了一個Android TabLayout作爲標題/標題自定義Views。 自定義Views綁定到一些文本和一個數字(顯示爲徽章)。綁定不會更新TabLayout自定義標題視圖

這一切正常。但是,更新(增加)徽章數量時,標籤頁視圖將不會遵循。 我需要爲標題創建一個自定義綁定,但我認爲我在這裏做了一些錯誤。

我用下面的代碼創建FragmentViewModel S上的標籤後:

var bindingContext = new MvxAndroidBindingContext(Context, (IMvxLayoutInflaterHolder)Context, 
    FragmentStatePagerAdapter.TryGetTabViewModel(tabIndex)); 
var view = bindingContext.BindingInflate(tabTitleResourceId, null); 

var tab = TabLayout.GetTabAt(tabIndex); 
tab.SetCustomView(view); 

然後在視圖(標籤頭)得到刷新一次,但後來沒有更多的。

任何想法爲什麼視圖沒有更新?

我使用MvxFragment(來自支持庫)加上MvxCachingFragmentStatePagerAdapter,如果有的話。

回答

1

解決方案是保持MvxAndroidBindingContext活在某處。

所以,以下不是偉大的代碼應該工作。

var bindingContext = new MvxAndroidBindingContext(Context(IMvxLayoutInflaterHolder)Context, 
FragmentStatePagerAdapter.TryGetTabViewModel(tabIndex)); 
tabCachedBindingsList.Add(bindingContext); 
var view = bindingContext.BindingInflate(tabTitleResourceId, null); 

var tab = TabLayout.GetTabAt(tabIndex); 
tab.SetCustomView(view); 
相關問題