У меня есть TabHost с 4 вкладками. Одна из них, вкладка «Профиль», содержит процесс регистрации: если пользователь не зарегистрирован, на вкладке «Профиль» должен появиться фрагмент «Создать учетную запись», а когда пользователь уже зарегистрирован, он должен отображать учетную запись профиля.
Я создал вкладки так:
protected override void AddTabs(Bundle args){
AddTab<TrackHomeView>(
args,
Mvx.IoCProvider.IoCConstruct<TrackHomeViewModel>(),
CreateTabFor("0", Resource.Drawable.ic_track_icon, Strings.Track));
AddTab<SendView>(
args,
Mvx.IoCProvider.IoCConstruct<SendViewModel>(),
CreateTabFor("1", Resource.Drawable.ic_send_icon, Strings.Send));
var isUserLoggedIn = MainViewModel.IsUserLoggedIn();
if (isUserLoggedIn)
{
AddTab<ProfileView>(
args,
Mvx.IoCProvider.IoCConstruct<ProfileViewModel>(),
CreateTabFor("2", Resource.Drawable.ic_profile_icon, Strings.Profile));
}
else
{
AddTab<CreateAccountView>(
args,
Mvx.IoCProvider.IoCConstruct<CreateAccountViewModel>(),
CreateTabFor("2", Resource.Drawable.ic_profile_icon, Strings.Profile));
}
AddTab<MoreView>(
args,
Mvx.IoCProvider.IoCConstruct<MoreViewModel>(),
CreateTabFor("3", Resource.Drawable.ic_more_icon, Strings.More));
}
и каждая вкладка создается так:
private TabHost.TabSpec CreateTabFor(string tabSpec, int imageId, string title)
{
var tabView = this.BindingInflate(Resource.Layout.custom_tab, null);
tabView.FindViewById<ImageView>(Resource.Id.tabImage).SetImageResource(imageId);
tabView.FindViewById<TextView>(Resource.Id.tabTitle).Text = title;
TabHost = FindViewById<TabHost>(global::Android.Resource.Id.TabHost);
TabHost.TabWidget.SetDividerDrawable(null);
TabHost.Setup();
var spec = TabHost.NewTabSpec(tabSpec);
spec.SetIndicator(tabView);
return spec;
}
Я хочу создать механизм, когда пользователь завершит процесс регистрации, все вкладки будут воссозданы.
Я попробовал кое-что:
TabHost.ClearAllTabs();
AddTabs(Intent.Extras);
но я получил ошибку, вкладки уже созданы.
Я хочу прикрепить другую ViewModel к одной из вкладок после того, как произойдет вход / регистрация. Кто-нибудь знает какой-либо механизм для этого?