Mam aktywność, która obsługuje fragmenty w układzie ramek. Jeśli zmienię wyświetlany fragment na inny, fragment nie zostanie dodany do tylnego stosu i dlatego użycie przycisku "Powrót" spowoduje bezpośrednie zamknięcie aplikacji zamiast nawigacji wstecz (FragmentManager.BackStackEntryCount jest zawsze 0 w OnBackPressed()-oddzwonić).Jak dodać fragment do backstack w MvvmCross 4.0?
W ViewModel z „główną działalność”, na którym znajduje się fragmenty pokazać fragmentu poprzez ShowViewModel <> metoda:
public class MainViewModel : MvxViewModel
{
public IMvxCommand ShowHomeCommand
{
get { return new MvxCommand(ShowHomeExecuted); }
}
private void ShowHomeExecuted()
{
ShowViewModel<HomeViewModel>();
}
}
Fragment klasy ma adnotacji przypisania viewmodel do hoście aktywność:
[MvxFragment(typeof(MainViewModel), Resource.Id.fragment_container)]
[Register("namespace.of.HomeFragment")]
używam domyślnego AndroidViewPresenter w moim setup-Klasa:
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
var mvxFragmentsPresenter = new MvxFragmentsPresenter(AndroidViewAssemblies);
Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(mvxFragmentsPresenter);
return mvxFragmentsPresenter;
}
Spodziewałem się parametru "AddToBackstack" lub podobnego w MvxFragment-Attribut lub w klasie MvxFragment, ale nie ma nic takiego. Czy coś mi brakuje lub czy obecnie nie ma wsparcia dla back-stacka w nowym mechanizmie fragmentów w MvvmCross 4.0?