public class FolioPageFragmentAdapter extends FragmentStatePagerAdapter{
private List<SpineReference> mSpineReferences;
private Book mBook;
private String mEpubFileName;
private boolean mIsSmilAvailable;
private FolioPageFragment mFolioPageFragment;
public FolioPageFragmentAdapter(FragmentManager fm, List<SpineReference> spineReferences,
Book book, String epubFilename, boolean isSmilAvilable) {
super(fm);
this.mSpineReferences = spineReferences;
this.mBook = book;
this.mEpubFileName = epubFilename;
this.mIsSmilAvailable = isSmilAvilable;
}
@Override
public Fragment getItem(int position) {
mFolioPageFragment = FolioPageFragment.newInstance(position, mBook, mEpubFileName, mIsSmilAvailable);
return mFolioPageFragment;
}
@Override
public int getCount() {
return mSpineReferences.size();
}
public FolioPageFragment getCurrentFragment(){
return mFolioPageFragment;
}
}
It doesn't give me the correct current fragment.
有什么办法可以让我得到当前的 fragment 。 我已将 FragmentPagerAdapter 更改为 FragmentStatePagerAdapter。 以下方法不提供当前 fragment 。 Evert 创建实例时,我将其存储在全局变量中,但它对我不起作用。
private Fragment getFragment(int pos) {
return getSupportFragmentManager().
findFragmentByTag("android:switcher:" + R.id.folioPageViewPager + ":" + (pos));
}
最佳答案
这可能行不通,因为 getItem() 可以返回下一个/上一个 fragment 。尝试制作 fragment 数组,将创建的 fragment 存储在那里并从当前数组中检索。
关于android - 我怎样才能得到 FragmentPagerAdapter 的当前 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099114/