我很难理解如何使用fragment
替换FragmentPagerAdapter
。我有一个扩展FragmentPagerAdapter
(android.support.v13.app.FragmentPagerAdapter
)和MainActivity implements ActionBar
。TabListener
的课程,在FragmentPageAdapter
课程中,我使用getItem()
进行设置我的3 fragment
。到现在为止还挺好。
其中一个fragment
是ListView
(pos#1),我使用监听器检查onItemClick()
。
我想将当前的ListView
Fragment
替换为另一个fragment
,所以我所做的就是在onItemClick()
内执行以下代码:
FragmentManager mFragmentManager = mActivity.getFragmentManager();
//new fragment to replace
Fragment mFragment = new TabPlaceFragment();
mFragmentManager.beginTransaction()
.replace(R.id.pager, mFragment)
.addToBackStack(null)
.commit();
这样做的是片段替换为空白fragment
,我假设是寻呼机,但mFragment
没有被替换。我尝试将ID添加到当前fragment
并尝试替换它。
mFragmentManager.beginTransaction()
.replace(R.id.frament_old, mFragment)
.addToBackStack(null)
.commit();
但这样做是因为它与新fragment
fragment
重叠
最后我尝试将fragment
的ID替换为新的,但这也给了我一个空白fragment
。
//this gives me the current fragment I want to replace
Fragment mCurrent = mFragmentManager.findFragmentByTag(MainHelper.getFragmentName(mViewPager.getId(), 1));
mFragmentManager.beginTransaction()
.replace(mCurrent.getId(), mFragment)
.addToBackStack(null)
.commit();
我确定我没有正确实现该方法,但我找不到一个很好的例子来遵循我的代码逻辑。我想把片段替换放在MainActivity
下的getItem()
,但不知道如何从我的onItemClick()
监听器中调用它。
非常感谢任何帮助!!!
感谢。