我是如何从viewpager Adapter获取当前可见片段的?

时间:2014-02-13 06:29:05

标签: android-fragments

我已经实现了这些代码行,但它无效。

pagerAdapter = new AbstractPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager)findViewById(R.id.pager);

    MyFragment frg  = (MyFragment)pagerAdapter.getItem(mViewPager.getCurrentItem());

public class AbstractPagerAdapter extends FragmentPagerAdapter  {

        public AbstractPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            return AbstractDetailFragment.newInstance(objlist.get(position),position == notePosition ? true : false);

        }

        @Override
        public int getCount() {
            return objlist.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {

            return objlist.get(position).getTitle();
        }
    }

1 个答案:

答案 0 :(得分:1)

要获取当前可见的片段实例,请尝试以下

viewPager.setOnPageChangeListener(this);

以及以下方法

@Override
public void onPageSelected(int position) {

    if (position == 0)
        setFragmentFor(0);
    if (position == 1)
        setFragmentFor(1);
            .
            .
            .
            // Upto how many fragments you've in your ViewPager
}

所以在setFragmentFor()方法中,您应该编写自己的逻辑来获取新的片段实例,具体取决于通过setFragmentFor()传递的参数值。