我看到你的分支并注意到你正在使用ViewPager
并尝试使用FragmentTransaction
更新里面的片段ViewPager
。这不起作用,因为当ViewPagerAdapter
已创建且无法附加到ViewPager
通过一个FragmentTransaction
.
这是我解决问题的方法。由于我使用的是 ViewPager,所以使用FragmentTransaction
如下所示不起作用:
错误的方法:
FragmentManager fm = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
CommentsFragment commentsFragment = CommentsFragment.newInstance(mTaskId, mTaskName);
ft.replace(R.id.container, commentsFragment);
ft.addToBackStack(null);
ft.commit();
对于 ViewPager,我必须更新填充它的适配器,然后将其设置为正确的片段。这就是我所做的:
正确的方法:
在TasksFragment中的onListItemClick()中,调用此接口方法onFragmentInteraction。然后在主活动AddTask中,实现如下:
@Override
public void onFragmentInteraction(String taskId, String taskName, String assigneeRef) {
CommentsFragment commentsFragment = CommentsFragment.newInstance(taskId, taskName);
mSectionsPagerAdapter.fragmentList.remove(2);
mSectionsPagerAdapter.fragmentList.add(commentsFragment);
mSectionsPagerAdapter.notifyDataSetChanged();
mViewPager.setCurrentItem(2);
}
希望这可以帮助您和其他在 ViewPager 内更新 Fragment 时遇到问题的人。