簡體   English   中英

Android片段退棧(在最新更改相同片段上更改ui)

[英]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");

我的問題:

我單擊並開始此路徑:

  1. 添加HomeFragment
  2. 添加UserFragment <-單擊關注按鈕(跟隨btn UI更改為Follow Done
  3. 添加ImagesFragment
  4. 添加UserFragment <-單擊關注按鈕(將btn UI更改為UnFollow Done
  5. 按返回按鈕back to step 3 -- show ImagesFragment`
  6. 按返回按鈕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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM