0

我已经成功地替换了 FragmentStatePagerAdapter 中的片段,但它需要从片段中滑出以便将其销毁并重新创建不同的片段,从而替换片段。

我需要的是用另一个片段替换适配器的当前查看片段,而不更改当前查看的片段。

例子:

第1页 第2页 第3页 第4页

Page4 是活动片段。当我单击 Page4 中的某些内容时,它将被另一个片段替换

第1页 第2页 第3页 第3

fragmentDataSource[3] = page3Fragment;
adapter.notifyDataSetChanged();

仅因onChange()方法而有效。(胡乱猜测)

这可能吗?我考虑过使用 FrameLayout 并只是设置布局的可见性,但我认为这不是最佳选择。

谢谢!

4

1 回答 1

0

这不是如何在 ViewPager 中重新实例化 Fragment 的最有效方法,但它是最简单的:

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);
        } 
于 2014-12-30T10:06:07.343 回答