美文网首页Android知识
如何获取ViewPager当前的Fragment

如何获取ViewPager当前的Fragment

作者: SoloHo | 来源:发表于2014-12-11 16:10 被阅读1419次

    有时候我们都需要从ViewPager中获得当前的Fragment,可惜的是Api里并没有直接获取的方法,所以需要我们去造一个,我们可以FragmentPagerAdapter入手:

    public abstract class FragmentPagerAdapterCompat extends FragmentPagerAdapter {
    
        private SparseArray<Fragment> fragments;
    
        public FragmentPagerAdapterCompat(FragmentManager fm) {
            super(fm);
            fragments = new SparseArray<>(getCount());
        }
        
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            Fragment fragment = (Fragment) super.instantiateItem(container, position);
            fragments.put(position, fragment);
            return fragment;
        }
        
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
            fragments.remove(position);
        }
        
        public Fragment getFragment(int position) {
            return fragments.get(position);
        }
            
    }
    

    最后

    是的,就这么简单,需要获取当前的第几个fragment就调用getFragment(int)吧,不过要注意要处理Null的情况,因为有可能还没有初始化,或者已经被销毁掉了。

    转载请附上本文地址

    相关文章

      网友评论

        本文标题:如何获取ViewPager当前的Fragment

        本文链接:https://www.haomeiwen.com/subject/wkbntttx.html