编辑:问题已解决。请参阅下面的评论...
我正在尝试为我的 ViewPager 实现 OnPageChangeListener。我在确定活动片段时遇到问题(将类命名为 myFragment)。在我的 TabsAdapter 的某处设置了 Fragment:
@Override
public Fragment getItem(int position)
{
TabInfo info = mTabs.get(position);
return Fragment.instantiate(mContext, info.clss.getName(), info.args);
}
我认为,info.clss.getName() 就像 myFragment.class.getName()。如果我这样称呼:
FragmentManager fm = getSupportFragmentManager();
然后 myfragment.class.getName() 出现在属性中。但如果我这样称呼:
Fragment test = fm.findFragmentByTag(myfragment.class.getName());
测试为空。
在运行时查看 FM 是什么:
fm FragmentManagerImpl (id=830007952696)
mActive ArrayList (id=830007771376)
array Object[12] (id=830008021856)
[0] fragment1 (id=830007965416)
[1] myFragment (id=830008076232)
[2] null
...
size 2
mActivity tabActivity (id=830007948592)
mAdded ArrayList (id=830007781264)
mAvailBackStackIndices null
mAvailIndices null
mBackStack null
mBackStackChangeListeners null
mBackStackIndices null
mCreatedMenus null
mCurState 5
mDestroyed false
mExecCommit FragmentManagerImpl$1 (id=830007953504)
mExecutingActions false
mHavePendingDeferredStart false
mNeedMenuInvalidate false
mNoTransactionsBecause null
mPendingActions ArrayList (id=830007908880)
mStateArray null
mStateBundle null
mStateSaved false
mTmpActions Runnable[1] (id=830007783384)
另一个问题是,选项卡指示器未设置为活动选项卡。