编辑:解决了问题。见下面的评论......
我正在尝试将OnPageChangeListener实现到我的ViewPager。我有确定活动片段的问题(将类命名为myFragment)。我的TabsAdapter中的某个地方设置了片段:
@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)
另一个问题是,标签指示符未设置为活动标签。
答案 0 :(得分:0)
(在评论中回答。见Question with no answers, but issue solved in the comments (or extended in chat))
OP写道:获取片段的ID或标记的一种方法是在调用
myFragment.getID
时调用onCreateView()
。我试图设置一个标签,并编写更新方法......这很有用。但是非常草率,因为如果调用OnWheelChangedListener
,则永远不会调用更新方法。我有六个轮子......然后我发现了这个:Detect ViewPager tab change inside Fragment