2017-02-15 15 views
0

3つのフラグメントがあります。Androidフラグメントのバックスタック(最新の変更で同一のフラグメントに変更)

  • HomeFragment
  • UserFragment
  • 断片を追加するために、私はこの方法を使用ImagesFragment

  • add(R.id.frameLayout, HomeFragment, "HomeFragment");
  • add(R.id.frameLayout, UserFragment, "UserFragment");
  • add(R.id.frameLayout, ImagesFragment, "ImagesFragment");

私の問題:

私はこのパスをクリックして起動します。

  1. UserFragment <を追加HomeFragment
  2. を追加 - フォローボタンをクリックします(BTN UIをたどるが完了フォロー変更
  3. ImagesFragment
  4. UserFragment <を追加 - バックボタンを押しback to step 3 -- show ImagesFragment`
  5. プレスバックボタンback to step 2 -- show UserFragment` <
  6. (BTN UIがフォローがを完了を変え続く)フォロー]ボタンをクリックして - おっと!これは私の問題です。ステップ4で私はフォローボタンをクリックし、はフォローされています。手順2でUIを変更しないでください。 :(同じフラグメントに最新の変更にUIを更新する方法

あなたはInstagramのか?それを確認してください。xyzのページを開き、次の開始。クリックホームBTN(後に押さないでください再び戻って)次のオープンのxyzページとフォローセット。今。あなたは、変更があなたのUIを更新するために、あなたのUserFragmentのUI

+0

plzは 'show fragment'と' add fragment'と 'update ui'にコードを表示します – Yat3s

+0

@ Yat3sコードは必要ありません。私の質問をもう一度読んでください – grizzly

+0

問題は 'UserFragment'は単一のインスタンスか2つのインスタンスですか? – Yat3s

答えて

1

BTN従うonHiddenChangedコールバックを追加表示し、バックのxyzページへ戻るボタンを押してください。 をリフレッシュが常に必要とされていない場合UserFraの再開でgment、shouldReloadScreen(あなたの活動にそれを追加)以下のようなフラグを使用します。ステップ4から戻って移動しながら、あなたがImageFragmentを表示すること必要がない場合はアプローチの下に使用し、

@Override 
    public void onHiddenChanged(boolean hidden) { 
     super.onHiddenChanged(hidden); 
     if (hidden) { 
      unregisterEventBus(); 
     } else { 
      registerEventBus(); 
      if (((YourActivity) context).shouldReloadScreen()) { 
       loadData(); 
       ((RevolveActivity) context).setshouldReloadScreen(false); 
      } 
     } 
    } 

を:

をステップから移動している間UserFragment remove ImageFragmentを追加する代わりに、3から4をステップ4に追加します。これは、StackTraceにUserFragmentのインスタンスを1つだけ保持します。

+0

私の6つのステップは例です。このアップデートを確認したり、うまく働いていました。インスタントグラムでは、ユーザーは無制限のページと投稿を開くことができます。プレスバックボタンのナビゲーションは素晴らしい仕事です。あなたが同じページを10回開いた場合、古いページは新しいページの変更時にuiを更新します – grizzly

関連する問題