Замена фрагмента снова вызывает проблемы - PullRequest
0 голосов
/ 03 декабря 2018

Моя активность XML

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <FrameLayout
        android:id="@+id/contentFrame1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

</android.support.design.widget.CoordinatorLayout>

У меня есть метод attachView, который вызывает из onCreate действия

@Override
protected void attachView() {
    // Get the fragment from dagger
    getFragmentManager().
            beginTransaction().
            setCustomAnimations(R.animator.slide_up, 0, 0, R.animator.slide_down).
            replace(R.id.contentFrame1, new MatchFragment2()).
            addToBackStack("MatchFragment").
            commit();
    getFragmentManager().executePendingTransactions();

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            getFragmentManager().
                    beginTransaction().
                    setCustomAnimations(R.animator.slide_up, 0, 0, R.animator.slide_down).
                    replace(R.id.contentFrame1, new VictorFragment()).
                    addToBackStack("VictorFragment").
                    commit();
            getFragmentManager().executePendingTransactions();
            getFragmentManager().getBackStackEntryCount(); //this reads 2
        }
    }, 3000);
}

Когда я нажимаю обратно из VictorFragment, меня приветствует MatchFragment.Разве VictorFragment не должен быть единственным существующим фрагментом в сценарии, и нажатие назад от него должно завершить действие?

1 Ответ

0 голосов
/ 03 декабря 2018

Удалите ваш вызов методу addToBackStack().

Когда вы вызываете это на FragmentTransaction, вы сообщаете системе, что хотите, чтобы она "запомнила" транзакцию и позволила вам "отменить ", нажав кнопку назад.Так что если вы не хотите, чтобы кнопка возврата убрала VictorFragment и снова показала MatchFragment2, то вам следует не вызвать addToBackStack() для этой транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...