从另一个片段导航后,viewpager在返回时不可见(代码片段)

author author     2022-12-29     501

关键词:

我有默认创建的经典底部导航,有3个TAB(FragmentOne,FragmentTwo和FragmentThree)。第一个片段(FragmentOne)具有ViewPager,其中包含两个静态内部片段(FragmentInner1和FragmentInner2)。

当应用程序启动时,evrything很好,所以在FragmentOne中我们可以看到FragmentInner1并可以导航到FragmentInner2。

但是在从FragmentTwo导航到FragmentOne后,FragmentInner1不可见。这是一个问题。

我想我们应该以某种方式再创造它?我从这里https://developer.android.com/guide/components/fragments.htmlhttps://developer.android.com/training/implementing-navigation/lateral.html#PagerTitleStrip调查手册,但它没有帮助,我的代码看起来一样。

请帮忙。谢谢!

FragmentOne

public class FragmentOne extends Fragment 

    //This is our viewPager
    private ViewPager viewPager;

    //Fragments
    FragmentInner1 fragmentInner1;
    FragmentInner2 fragmentInner2;

    ViewPagerAdapter adapter;

    private View view;

    public FragmentOne() 
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) 

         view = inflater.inflate(R.layout.fragment_fragment_one, container, false);

        //Initializing viewPager
        viewPager = (ViewPager) view.findViewById(R.id.viewpager);

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() 
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 

            

            @Override
            public void onPageSelected(int position) 

            

            @Override
            public void onPageScrollStateChanged(int state) 

            
        );

        setupViewPager(viewPager);

        return view;
    

    private void setupViewPager(ViewPager viewPager) 
        adapter  = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
        fragmentInner1=new FragmentInner1();
        fragmentInner2=new FragmentInner2();
        adapter.addFragment(fragmentInner1);
        adapter.addFragment(fragmentInner2);
        viewPager.setAdapter(adapter);
    

    @Override
    public void onAttach(Context context)
    
        super.onAttach(context);
    

    @Override
    public void onResume() 
        super.onResume();

    

    @Override
    public void onPause() 
        super.onPause();
    

    @Override
    public void onDestroy() 
        super.onDestroy();
    

ViewPagerAdapter

public class ViewPagerAdapter extends FragmentPagerAdapter 
    private final List<Fragment> mFragmentList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) 
        super(manager);
    
    @Override
    public Fragment getItem(int position) 
        Fragment fragment = mFragmentList.get(position);
        return fragment;
    

    @Override
    public int getCount() 
        return mFragmentList.size();
    

    public void addFragment(Fragment fragment) 
        mFragmentList.add(fragment);
    

FragmentInner1

public class FragmentInner1 extends Fragment 

    public static FragmentInner1 newInstance( ) 
        FragmentInner1 fragment = new FragmentInner1();
        return fragment;
    

    public FragmentInner1() 
        

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)      
        return inflater.inflate(R.layout.fragment_fragment_inner1, container, false);
    


enter image description here

答案

您必须使用getChildFragmentManager() For Viewpager来调整Popback功能。

adapter  = new ViewPagerAdapter(getChildFragmentManager());

这是因为Viewpager有多个片段,其中Viewpager本身或由另一个片段持有。因此,要调用和使用子片段。

You Can Refer this Documentation on ChildFragmentManager()

如何在将 Tablayout 与 viewpager 一起使用时从另一个片段调用 AsyncTask?

】如何在将Tablayout与viewpager一起使用时从另一个片段调用AsyncTask?【英文标题】:HowtocallAsyncTaskfromanotherfragmentwhileusingTablayoutwithviewpager?【发布时间】:2017-10-1319:08:45【问题描述】:我试图从另一个片段而不是我声明AsyncTask的类... 查看详情

使用导航组件来回导航时,ViewPager 的内容消失

】使用导航组件来回导航时,ViewPager的内容消失【英文标题】:ContentofViewPagerdisappearswhennavigatingbackandforthusingNavigationComponents【发布时间】:2019-09-0800:25:25【问题描述】:将导航迁移到新的Jetpack导航组件后,我发现在使用库来回... 查看详情

反应导航:模式后屏幕不可点击(编辑:这是一个错误)

】反应导航:模式后屏幕不可点击(编辑:这是一个错误)【英文标题】:ReactNavigation:Screennotclickableaftermodal(EDIT:it\'sabug)【发布时间】:2021-12-0512:46:19【问题描述】:我使用的是透明模式,但是每当我退出模式时(无论是返回还... 查看详情

ViewPager2 中的片段在返回父片段时被重新创建

】ViewPager2中的片段在返回父片段时被重新创建【英文标题】:fragmentsinsideViewPager2arerecreatedwhencomingbacktoparentfragment【发布时间】:2021-05-1204:56:09【问题描述】:我的一个片段中有一个ViewPager2(我们称之为片段A)。viewpager使用Fragm... 查看详情

从另一个活动返回时如何调用刷新片段

】从另一个活动返回时如何调用刷新片段【英文标题】:Howtocallrefreshfragmentwhengetttingbackfromanotheractivity【发布时间】:2016-07-2416:48:39【问题描述】:我是android编程的新手,所以如果问题很简单。我得到了ActivityA并从FragmentA调用Fra... 查看详情

从另一个活动返回后如何恢复活动中最后打开的片段

】从另一个活动返回后如何恢复活动中最后打开的片段【英文标题】:howtorestorelastopenedfragmentinsideanactivityaftergettingbackfromanotheractvivty【发布时间】:2020-03-2006:20:37【问题描述】:我在这样的流程中使用多个片段:片段A在其项目... 查看详情

在导航抽屉片段中保存视图页面片段的状态

...片段中保存视图页面片段的状态【英文标题】:Savestateofviewpagerfragmentinnavigationdrawerfragments【发布时间】:2018-08-0121:14:56【问题描述】:我有导航抽屉。在导航抽屉的第一个片段中,有viewpager,并且有来自网络的信息。Viewpager也... 查看详情

从另一个片段返回时返回到屏幕上的当前位置

】从另一个片段返回时返回到屏幕上的当前位置【英文标题】:Returntocurrentpositiononthescreenwhenreturningfromanotherfragment【发布时间】:2016-11-0120:11:04【问题描述】:我有一个片段,其中包含在recyclerView中显示的项目列表。该列表可以... 查看详情

从另一个片段返回/保存recyclerview位置后如何防止片段刷新recyclerview

】从另一个片段返回/保存recyclerview位置后如何防止片段刷新recyclerview【英文标题】:Howtopreventfragmenttorefreshrecyclerviewwhenafterbackfromanotherfragment/saverecyclerviewposition【发布时间】:2021-12-2506:39:15【问题描述】:在这一部分中,我尝试... 查看详情

从另一个 Activity 返回后返回 MainActivity 的片段?

】从另一个Activity返回后返回MainActivity的片段?【英文标题】:ReturningtoMainActivity\'sfragmentafterreturnbackfromanotherActivity?【发布时间】:2017-12-2219:51:03【问题描述】:我有两个活动:MainActivity和OtherActivity。MainActivity中的片段会启动Oth... 查看详情

当我返回片段时,ViewPager 为空白

】当我返回片段时,ViewPager为空白【英文标题】:ViewPagerinblankwhenIreturnbacktothefragment【发布时间】:2013-08-0812:02:46【问题描述】:我有一个片段AroundMeFragment,它有一个带有两个片段MapFragment和ListFragment的视图寻呼机。当我第一次... 查看详情

ViewPager 中的片段在 getView() 中返回 null

】ViewPager中的片段在getView()中返回null【英文标题】:FragmentinsideViewPagerreturningnullingetView()【发布时间】:2013-10-0702:33:49【问题描述】:在我的应用程序中,我有一个ViewPager,在该ViewPager中大约有17个片段。我已经为纵向和横向设... 查看详情

如何知道片段何时在 viewpager 中实际可见

】如何知道片段何时在viewpager中实际可见【英文标题】:Howtoknowwhenfragmentactuallyvisibleinviewpager【发布时间】:2018-07-3106:32:59【问题描述】:我在ViewPager中使用了4个片段,因为ViewPager会提前加载上一个和下一个片段,并且在片段之... 查看详情

从另一个网站导航时 RedirectToAction 不起作用

】从另一个网站导航时RedirectToAction不起作用【英文标题】:RedirectToActionisnotworkingwhilenavigatingfromanotherwebsite【发布时间】:2020-08-2100:08:44【问题描述】:我正在开发一个带有PayPal集成的asp.net核心MVC项目。完成付款后,PayPal正确重... 查看详情

从另一个活动返回时,MapFragment 的地图加载滞后

】从另一个活动返回时,MapFragment的地图加载滞后【英文标题】:MapofMapFragmentgetsloadedwithlagwhenreturningfromanotheractivity【发布时间】:2014-03-1523:11:20【问题描述】:据我所知,MapFragment的过渡动画存在问题。布局上的所有视图都会立... 查看详情

fragment中的viewpager,只有选项卡才能在第一个视图上加载选项卡(代码片段)

我有一个带有选项卡的片段,它使用了一个视图寻呼机。问题是当我第一次访问片段时会出现选项卡,但如果我导航到其他地方然后返回到此片段,则视图寻呼机中的片段不再出现。我使用SectionsPagerAdapter如下:publicclassSectionsPag... 查看详情

从选项卡式片段导航时,如何避免聚焦最后一个 EditText?

...Fragment?【发布时间】:2014-11-0523:25:29【问题描述】:我在ViewPager中有3个选项卡。默认情况下,选项卡2中的焦点位于第一个EditText中。当我从Tab2导航到Tab3并返回时,我发现焦点位于Tab2的 查看详情

热门从另一个片段导航到主页片段

】热门从另一个片段导航到主页片段【英文标题】:Hottonavigatetohomefragmentfromanotherfragment【发布时间】:2022-01-0214:11:50【问题描述】:虽然我正在使用其他语言进行编码,但我是Android编程新手。在特定情况下,我无法导航到主页... 查看详情