我有3个片段。
我使用此方法添加片段:
add(R.id.frameLayout, HomeFragment, "HomeFragment");
add(R.id.frameLayout, UserFragment, "UserFragment");
add(R.id.frameLayout, ImagesFragment, "ImagesFragment");
我的问题:
点击并开始此路径:
HomeFragment
UserFragment
< - 点击关注按钮(按照btn UI更改关注完成)ImagesFragment
UserFragment
< - 点击关注按钮(按照btn用户界面更改取消关注完成)back to step 3 -- show
ImagesFragment` back to step 2 -- show
UserFragment` < - oops !!!这是我的问题。在第4步中,我点击了关注按钮,然后取消关注。但不是在第2步更改UI? :( 如何更新同一片段上最新更改的用户界面?
你有Instagram吗?请检查一下。打开xyz页面并开始关注。点击主页btn(不要按回)后再次打开xyz页面并设置取消关注。现在按回按钮返回xyz页面。你显示更改跟随btn ui
答案 0 :(得分:1)
在UserFragment中,添加onHiddenChanged回调以刷新UI。 如果在UserFragment的恢复时并不总是需要刷新,请使用shouldReloadScreen(在活动中添加它)标记,如下所示:
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
unregisterEventBus();
} else {
registerEventBus();
if (((YourActivity) context).shouldReloadScreen()) {
loadData();
((RevolveActivity) context).setshouldReloadScreen(false);
}
}
}
如果您不必在从步骤4返回时显示ImageFragment,请使用以下方法:
从第3步移至第4步,而不是添加UserFragment删除ImageFragment。这将在stackTrace中仅保留一个UserFragment实例。