Getting the current Fragment instance in the viewpager

前端 未结 30 2402
醉话见心
醉话见心 2020-11-22 08:56

Below is my code which has 3 Fragment classes each embedded with each of the 3 tabs on ViewPager. I have a menu option. As shown in the onOpt

30条回答
  •  情深已故
    2020-11-22 09:23

    In my Activity I have:

    int currentPage = 0;//start at the first tab
    private SparseArray fragments;//list off fragments
    viewPager.setOnPageChangeListener(new OnPageChangeListener() {
    
    @Override
    public void onPageSelected(int pos) {
            currentPage = pos;//update current page
    }
    
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {}
    @Override
    public void onPageScrollStateChanged(int arg0) {}
    });
    
    
    
    @Override
    public void onAttachFragment(Fragment fragment) {
        super.onAttachFragment(fragment);
        if(fragment instanceof Fragment1)
            fragments.put(0, fragment);
        if(fragment instanceof Fragment2)
            fragments.put(2, fragment);
        if(fragment instanceof Fragment3)
            fragments.put(3, fragment);
        if(fragment instanceof Fragment4)
            fragments.put(4, fragment);
    }
    
    Then I have the following method for getting the current fragment
    
    public Fragment getCurrentFragment() {
        return fragments.get(currentPage);
    }
    

提交回复
热议问题