相关疑难解决方法(0)

用Fragment替换ViewPager - 然后导航回来

我有一个活动,最初主持一个ViewPager,连接到FragmentPagerAdapter.

当用户点击ViewPager的子片段中的项目时,我正在使用FragmentTransaction将空容器视图替换为我想要导航到的新片段.

如果我在事务上使用addToBackStack(),提交事务然后导航回来,我不会返回到ViewPager的视图(初始布局).

如果我不在事务上使用addToBackStack(),提交事务然后导航回来,应用程序退出.

很明显ViewPager没有被添加到backstack中(这并不令人惊讶,因为它本身不是一个片段).但是我希望默认行为是背压将我带回到那个活动的初始阶段.查看(ViewPager).

基于我所读到的内容,似乎可能是因为片段事务正在发生,ViewPager或PagerAdapter会丢失应该显示哪个片段的跟踪.

我真的对此感到困惑,但我最终创建了一大堆代码覆盖了onBackPress并显示和隐藏了viewpager视图.我认为有一种更简单的方法可以使用默认行为来执行适当的导航.

TL;博士

A是一个托管片段的Viewpager.B是一个新片段.

当我用B替换A,然后按回来时,我希望导航回A,但这不会发生.

任何建议将不胜感激.

码:

主要活动:

  @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

        headingLayout = (RelativeLayout) findViewById(R.id.headingLayout);
        headingLayout.setVisibility(View.GONE);

        // Set up the ViewPager, attaching the adapter and setting up a listener
        // for when the
        // user swipes between sections.
        mViewPager = (ViewPager) findViewById(R.id.pager);

        mViewPager.setPageMargin(8);

        /** Getting fragment manager */
        FragmentManager fm = getSupportFragmentManager();

        /** Instantiating FragmentPagerAdapter */
        MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);

        /** Setting the pagerAdapter to the pager object */ …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter

30
推荐指数
3
解决办法
2万
查看次数