在我的应用程序中,我在viewPager中有3个片段。
对于第一个片段,我想在按下按钮后重新加载视图(基本上再次调用onCreateView()
)。
要获得此功能,我决定使用FragmentTransaction
,detach()
,attach()
和commit()
片段。
在片段中,我创建了SetData()
方法:
public void setData() {
Fragment frg = null;
frg = mainMenu.getFragmentByPosition();
final android.support.v4.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();
}
在包含viewPager的活动中,我有getFragmentByPosition()
方法:
public Fragment getFragmentByPosition() {
String tag = "android:switcher:" + R.id.viewpager + ":" + viewPager.getCurrentItem();
return getSupportFragmentManager().findFragmentByTag(tag);
}
问题是我在getFragmentByPosition()
更新
问题在于我无法获得对当前显示的片段的引用。
adapter.getItem(1)
- 返回null
getFragmentManager().getFragments().get(0)
- 返回null
答案 0 :(得分:0)
如果您有3个片段,请创建3个唯一字符串TAG1
,TAG2
,TAG3
,然后使用其唯一标记添加每个片段
getSupportFragmentManager().beginTransaction().add(R.id.mycontainer, new MyFragment1(), TAG1).commit();
然后找到使用相同的标签
getSupportFragmentManager().findFragmentByTag(TAG1);