簡體   English   中英

使用fragmentpageradapter獲取當前片段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM