2016-09-14 89 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); 
相关问题