2

私は1つのアクティビティを持ち、すべてのビューをフラグメントとしたいと思います。MvvmCross V5がアクティビティから自動的にナビゲート

これまで、私は最初のビューをアクティビティとして持っていて、すぐにそのフラグメントに移動しました。すべてのフラグメントは、アクティビティビューのコンテンツフレームに配置されます。

これは、アクティビティのOnCreateメソッドからFragmentに移動することで行いました。これは、MvvmCrossでは動作させるために使用されましたが、動作させることはできません。

Iナビゲーション

public async Task ShowMainView() 
{ 
    await navigationService.Navigate<MainViewModel>(); 
} 

これは活性OnCreateViewから呼び出されるを行うアクティビティビューモデルのメソッドを持っています。

ViewModel.ShowMainView.ContinueWith((task) => 
{ 
    // have now completed navigation 
}); 

MainViewModelのコンストラクタは呼び出されていますが、何もありません。

これがなぜ機能しないのか、これをよりうまくやっていけばよいかについてのアイデア。

+0

以下のように私は代替が(それはViewModelにだ経由)フラグメントに直接移動することと聞かせ、私のAndroidのプロジェクトでSetup.csファイルにMvxAppCompatViewPresenterを設定することで、問題を修正MvvmCrossは、含まれているアクティビティのナビゲーションを処理します。それはあなたのために働くだろうか? – Plac3Hold3r

+0

さらに調査すると、それは私の断片の問題だと思う。同じ結果を持つコマンドから移動するようにコードを変更しました。これはおそらく単純なものです。 – rideintothesun

答えて

3

問題は、私がナビゲーションを行っていた場所ではなく、プレゼンターが使用されているときに問題でした。

フラグメント 'MainView'を作成できません。 Android Support Fragmentsを使用する場合は、MvxAppCompatViewPresenter を使用してください。

 protected override IMvxAndroidViewPresenter CreateViewPresenter() 
     { 
      return new MvxAppCompatViewPresenter(this.AndroidViewAssemblies); 
     } 
+0

'Setup.cs'に' MvxAndroidSetup'の代わりに 'MvxAppCompatSetup'を継承して使うこともできます。デフォルトで 'MvxAppCompatViewPresenter'を使用します。 – Plac3Hold3r

関連する問題