将一个viewpager的片段替换为另一个viewpager的片段,并按下相同的活动后退键

时间:2015-03-30 06:05:51

标签: android android-fragments android-viewpager

我在swipeViewPager

中有2个浏览器:nonSwipeViewPagerMainActivity

swipeableViewPager中,我有片段:homeFragmentFirsthomeFragmentSecond

nonSwipeableViewPager中,我有片段:AppleFragmentMangoFragmentGrapesFragmentCherryFragment

首先,我想在swipeableViewPager中查看MainActivity。所以我将setVisibility的{​​{1}}设为nonSwipeableViewPager。 选择GONE中的项目后,我drawer的{​​{1}} setVisibilityswipeableViewPager GONE。 这样,我打开nonSwipeableViewPager

情况: 假设,我从抽屉中选择了 Grapes Visible打开。 我在那里做了一些东西。然后当我按下后退按钮时,应用程序关闭,即AppleFragment关闭。

我想要的是当按下后退按钮时,我想再次从GrapesFragment带回MainActivity

我在homeFragmentFirst

中尝试过以下代码
swipeableViewPager

2 个答案:

答案 0 :(得分:1)

我自己解决了。我在MainActivity中添加了以下内容:

@Override
public void onBackPressed() {
    if (nonSwipeHomeViewPager.getVisibility() == View.VISIBLE) {
        nonSwipeHomeViewPager.setVisibility(View.GONE);
        swipeHomeViewPager.setVisibility(View.VISIBLE);
        swipeHomeViewPager.setCurrentItem(0,true);
    } else if (swipeHomeViewPager.getVisibility() == View.VISIBLE){
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
    }
}

答案 1 :(得分:0)

您可以为片段实现backstack(添加/替换片段时)将其添加到backstack。后退会自动将您带到上一个片段。

否则你需要覆盖OnBackPressed方法来处理你自己的逻辑。