我有一個活動,它內部有一個ViewPager,裏面持有5個片段,底部佈局具有可在viewpager頁面之間切換的按鈕,但每個片段都可以打開一個新的片段,I我正在替換MainActivity中的片段,如下所示:使用帶可見片段的onBackPressed
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment placeDetailsFragment = new PlaceDetailsFragment();
fragmentManager.beginTransaction().setCustomAnimations(R.anim.right_in, R.anim.left_out, R.anim.left_in, R.anim.right_out).replace(rootViewID, placeDetailsFragment, fragmentTag.getKey()).addToBackStack(fragmentTag.getKey()).commit();
其中rootViewId是頁面中根佈局的ID。
的想法是,我可以從第1頁的viewpager進入到片段1和2頁面片段2。等等。
我希望能夠當我按下硬件後退按鈕在片段1回到頁面1,當我在片段2回到頁面2,但默認的onBackPressed行爲只是彈出最後一個片段添加到堆棧,無論哪一個是可見的,所以如果我打開片段1,然後片段2那麼我回到前面提到的活動的底部視圖中的第1頁,並且當它彈出片段1時,將其彈回片段2,因爲它是當前可見的。
我該如何解決這個問題?
你可能需要基本實現onBackStackChangedListener並在那裏添加你自己的邏輯。 –
@AndreiT你能給我一個例子或鏈接? – EyadMhanna
你能解釋一下你的情況嗎?這很難理解 – BlueMango