[英]Get current fragment using fragmentpageradapter
編輯:已解決的問題。 請看下面的評論...
我正在嘗試對我的ViewPager實現OnPageChangeListener。 我在確定活動片段時遇到了問題(將類命名為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)
另一個問題是,選項卡指示器未設置為活動選項卡。
(已在評論中回答。請參閱無答案的問題,但問題已在評論中解決(或在聊天中擴展) )
OP寫道:
獲取片段ID或標簽的一種方法是在調用
onCreateView()
時調用myFragment.getID
。 我試圖設置一個標簽,並編寫更新方法。 但是非常草率,因為如果調用OnWheelChangedListener
,則永遠不會調用更新方法。 我有六個輪子...然后我發現了這一點: 在Fragment中檢測ViewPager選項卡的更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.