[英]Android fragment backstack (change ui on latest change same fragment)
我有3個片段。
我使用此方法添加片段:
add(R.id.frameLayout, HomeFragment, "HomeFragment");
add(R.id.frameLayout, UserFragment, "UserFragment");
add(R.id.frameLayout, ImagesFragment, "ImagesFragment");
我的問題:
我單擊並開始此路徑:
HomeFragment
UserFragment
<-單擊關注按鈕(跟隨btn UI更改為Follow Done ) ImagesFragment
UserFragment
<-單擊關注按鈕(將btn UI更改為UnFollow Done ) back to step 3 -- show
ImagesFragment` back to step 2 -- show
UserFragment` <-糟糕!!! 這是我的問題。 在步驟4中,我單擊“關注”按鈕,然后取消關注 。 但不更改步驟2中的UI? :( 如何在相同片段的最新更改上更新UI?
你有instagram嗎? 請檢查一下。 打開xyz頁面並開始關注。 單擊主頁btn(不要按回)后,再次打開xyz頁面並設置取消關注。 現在按返回按鈕返回到xyz頁面。您顯示更改,跟隨btn ui
在您的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。 這將僅將UserFragment的一個實例保留在stackTrace中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.