2016-09-14 3 views
1

В MvvmCross 4.x Я создал Android TabLayout с пользовательским Views в качестве заголовка/заголовка. Пользовательские Views привязаны к некоторому тексту и числу (отображается как значок).Связывание не будет обновлять пользовательский заголовок TabLayout

Все работает отлично. Однако при обновлении (увеличении) номера для значка заголовок заголовка табуляции не будет следовать. Мне нужно было создать пользовательскую привязку для заголовков, но я думаю, что я сделал что-то не так.

Я использую следующий код после закладки Fragment и ViewModel 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); 

Тогда 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);