我已成功替换FragmentStatePagerAdapter中的片段,但它需要从片段中滑出以便将其销毁并重新创建不同的片段,从而替换片段。
我需要的是用另一个片段替换当前查看的适配器片段,而不更改当前查看的片段。
示例:
Page1 Page2 Page3 Page4
Page4是活动片段。当我点击Page4中的内容时,它将被另一个片段
替换Page1 Page2 Page3 Page3
fragmentDataSource[3] = page3Fragment;
adapter.notifyDataSetChanged();
仅适用于onChange()
方法。 (狂野猜测)
这可能吗?我考虑过使用FrameLayout并设置布局的可见性,但我认为它不是最佳选择。
谢谢!
答案 0 :(得分:0)
这不是在ViewPager中重新实例化片段的最有效方法,但它是最简单的:
public int getItemPosition(Object object) {
return POSITION_NONE;
}
或者在片段中创建一个方法并调用它,如果片段具有正确的标记:
@Override
public Fragment getItem(int position) {
if (position == some position) {
YourFragment myFragment = YourFragment.newInstance(someObject);
myFragment.setmTag("some tag");
return myFragment;
}
//some code
}
@Override
public int getItemPosition(Object object) {
YourFragment frag = ((YourFragment) object);
if (frag.getmTag()!="some tag") {
((YourFragment) object).update(someObject);
}
return super.getItemPosition(object);
}