2017-02-24 20 views
0

Iは、2つのフラグメント、フラグメントAとフラグメントBのフラグメントAは、4つのタブを含んを有するから、ネストされた断片を更新以下に示すとおりは、Android:別のフラグメント

enter image description here

タブ3は、ユーザから、リサイクラのビューを有しますオプションを選択します。ユーザーはフラグメントBに行き、何かをします。彼が完了すると、コールはフラグメントAに戻り、タブ4が強調表示され、4番目のタブのデータがロードされます。

これまではフラグメントAに戻ることができましたが、そこからは、タブ4に切り替えてデータを読み込むことができません。チェックの結果、コールバックがフラグメントAに返されたとき、それはまだ見えないことがわかりました。したがって、タブは切り替えられませんでした。どうすればこれを達成できますか?

答えて

0

FragmentAが一時停止しているため、FragmentAを直接更新することはできません。何ができることはFragmentAでFragmentB DialogFragmentを作成し、(多くstartActivityForResultのような)結果を得るためにtargetFragmentを使用

で、場所であなたはFragmentBを起動追加:

//RC_FRAGMENT_B is just an int constant to identify the result later 
fragmentB.setTargetFragment(FragmentA.this, RC_FRAGMENT_B); 

・実施:

あなたが完了しているFragmentB、でその後

public static final int RC_FRAGMENT_B = 1666; 
public static final int RC_SUCCESS = 1888; 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == RC_FRAGMENT_B && resultCode == RC_SUCCESS) { 
     //change tab, etc. 
    } 
} 
、使用:

Fragment target = getTargetFragment(); 
if (target != null) { 
    //FragmentA.RC_SUCCESS result code needs to be a constant indicate to FragmentA what to do 
    target.onActivityResult(getTargetRequestCode(), FragmentA.RC_SUCCESS, getActivity().getIntent()); 
} 
+0

IフラグメントBをダイアログに変換できません。断片Bでは、それはユーザーからの金銭を請求しているWebビューです。フラグメントが見えるようになったときを知る方法はありますか? – Nitish

+0

はい、onResumeメソッドですが、FragmentA.onResumeはFragmentB.onPauseの後まで発生しません(遅すぎます)。あなたはフラグメントダイアログの中にあなたが望むものを置くことができます。 AlertDialogと同じではありません –

関連する問題