Android 使用fragmentpageradapter获取当前片段
编辑:问题解决了。见下面的评论 我正在尝试为我的ViewPager实现一个OnPageChangeListener。我在确定活动片段(将类命名为myFragment)时遇到问题。在我的TabsAdapter中的某个地方,设置了片段:Android 使用fragmentpageradapter获取当前片段,android,android-fragments,Android,Android Fragments,编辑:问题解决了。见下面的评论 我正在尝试为我的ViewPager实现一个OnPageChangeListener。我在确定活动片段(将类命名为myFragment)时遇到问题。在我的TabsAdapter中的某个地方,设置了片段: @Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mConte
@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();
Fragment test = fm.findFragmentByTag(myfragment.class.getName());
然后myfragment.class.getName()出现在属性中。但如果我称之为:
FragmentManager fm = getSupportFragmentManager();
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.instatiate,片段将永远不会有ID或标记!获取片段ID或标记的一种方法是在调用onCreateView()时调用myFragment.getID。我试图设置一个标记,并编写更新方法。。。成功了。但是非常慢,因为如果调用OnWheelChangedListener,就会调用更新方法。我有六个轮子。。。然后我发现: