2016-09-21 33 views
0

[戻る]ボタンを押したときに戻るべき断片があります。MvxFragment MvxCachingFragmentCompatActivityを使用してBackStackを無効にする方法

My活動は私の断片がMvxFragmentから継承し、それは次のようにAddToBackStackがクラス上MvxFragmentAttributeにfalseに設定されているMvxCachingFragmentCompatActivity

から継承:

[MvxFragment(typeof(MainViewModel), Resource.Id.main_frame_layout, false)] 
[Register("myproject.droid.fragments.MyFragment ")] 
public class MyFragment : MvxFragment<MyViewModel> 
{ 

をしかし、私はそれに移動したときにAddToBackStackがfalseであっても、私の次のFramentに移動して戻るボタンを押すと、そのボタンに戻ります。

MvxCachingFragmentCompatActivityためのコードはここで見つけることができます:https://github.com/MvvmCross/MvvmCross-AndroidSupport/blob/master/MvvmCross.Droid.Support.V7.AppCompat/MvxCachingFragmentCompatActivity.cs

ShowFragment方式(ライン234)に正しいことを行うために表示されます。

if ((currentFragment != null && fragInfo.AddToBackStack) || forceAddToBackStack) 
{ 
    ft.AddToBackStack(fragInfo.Tag); 
} 

ShowFragmentはforceAddToBackStackで呼び出されていませんがに設定しました本当。

フラグメントをバックスタックに追加しないようにするにはどうすればよいですか?

+0

'AddToBackStack'のためにあなたがナビゲートする次のフラグメントはtrueに設定されますか? – Plac3Hold3r

答えて

0

First Fragmentの後に移動するフラグメントにAddToBackStacktrueに設定されていると、この現象が発生します。 First Fragmentがバックステージに追加されていない間、それを保持しているアクティビティが追加されています。

したがって、Second Fragmentに移動すると、実際にバックパックに2つのアイテム、ActivitySecond Fragmentがあります。 Second Fragmentから戻ると、Activity内の前の断片に戻ります。この場合はFirst Fragmentです。

この問題を解決するには、Second FragmentAddToBackStackfalseを設定します。これは、バックナビゲーションがActivityのものになることを意味します。

関連する問題