我正在尝试创建一个包含六个片段的ViewPager
,但只有第二个片段到第五个片段包含我想要显示的数据以及我想要用来重新加载数据的第一个片段和最后一个片段再次将位置设置为第二个片段。整体流程如下:
1(重新加载并返回到第2个)< - 第2个片段< - >第5片段 - >第6个片段(与第1个相同)
我尝试过的是从第一个片段和第六个片段创建一个回调,就像这样
public static class callbackFragmentLoading implements callbackFragmentLoad {
@Override
public void onLoading() {
mPager.setAdapter(mAdapter);
mPager.setCurrentItem(2,false);
}
}
我将回调传递给片段构造函数,因此我可以在onActivityCreated中调用onLoading函数。但我每次都这样做,应用程序将被强制关闭,logcat显示
递归进入executependingtransactions
有没有办法做到这一点?或者我这样做的方法是错的?
谢谢
答案 0 :(得分:2)
有没有办法做到这一点?或者我这样做的方法是错的?
在Fragments
的{{1}}之间混淆回调并不是一个好主意。相反,我会这样做:
ViewPager
加载Loader
中的任何数据(例如使用Fragments
),而是ViewPager
执行此操作(以及{{1}将通过FragmentActivity
)的方法获得它。Fragments
和Activity
)将在0
方法中调用父5
上的重新加载操作(如onResume
重新启动)Activity
将加载/重新加载数据,完成后会将Loader
设置为正确的项目(Activity
或ViewPager
)< / LI>
1
方法中,您将刷新片段的数据(这里您可能需要使用某种信号系统,因为您需要复制{{1}中的刷新代码(如果某些片段与当前可见位置相距很远,则可能会破坏其视图))。由于我不了解内部数据片段的许多内容,我写了basic skeleton sample(没有在活动中加载数据)。