2016-09-21 2 views
0

У меня есть фрагмент, который не следует переходить назад, когда нажата кнопка «Назад».Как отключить BackStack с MvxFragment MvxCachingFragmentCompatActivity

Моя активность наследуется от MvxCachingFragmentCompatActivity

Мой фрагмент наследует от MvxFragment и имеет AddToBackStack значение ЛОЖЬ в MvxFragmentAttribute выше класса следующим образом:

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

Однако, когда я перейти к нему, а затем к моему следующему frament и нажмите кнопку «Назад», затем он перейдет к нему, даже если AddToBackStack является ложным.

Код для 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

Является ли следующий фрагмент, который вы устанавливаете в true для 'AddToBackStack'? – Plac3Hold3r

ответ

0

Если фрагмент, на который вы переходите после First Fragment, имеет AddToBackStack, установленный в true, вы испытаете это поведение. В то время как First Fragment не добавляется в кулисы, активность, которая его удерживает, добавляется.

Поэтому, когда вы переходите на Second Fragment, у вас есть 2 предмета в вашей задней части, Activity и Second Fragment. Перемещение назад с Second Fragment приведет вас обратно к предыдущему показанному фрагменту в пределах Activity, который в этом случае является вашим First Fragment.

Чтобы решить эту проблему, вы можете установить AddToBackStack к false на Second Fragment что будет означать, что он вернулся навигация будет падать под этим из Activity.

Смежные вопросы