1

PreferenceFragmentCompatPreferenceFragmentCompatの内部にMainActivityの別のViewGroupをロードする単一のActivityアーキテクチャがあります。 MainActivity内にカスタムナビゲーションが存在するので、ViewGroupにフラグメントをロードして、その中から同じMainActivity内にすべて移動することができます。フラグメントが二度目に表示されない

初めてViewGroupに移動すると、PreferenceFragmentCompatは完全に正常に読み込まれます。しかし、PreferenceFragmentCompatが含まれているViewGroupから離れて再び戻ると、PreferenceFragmentCompatはそれ以降の時刻に表示されません。 ViewGroupはそうですが、フラグメントがあるべき場所は空です。フラグメントがライフサイクルを辿っているブレークポイント/ロギングを見ることができます。それは見えません。

ViewGroupを含む新しいと新しいPreferenceFragmentCompatオブジェクトのペアは、私は戻ってViewGroupに移動するたびに作成されるので、古いViewGroupに添付取得するべきではありません。ナビゲーション・アーキテクチャは、ここに投稿することがあまりにも複雑であるが、ここで私は含んでViewGroupクラスたびにフラグメントを追加している方法は次のとおりです。

CustomPreferenceFragment fragment = new CustomPreferenceFragment(); 
FragmentManager fm = activity.getSupportFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.add(R.id.fragment_frame_container, fragment); 
ft.commit(); 

フラグメントがアップ表示されない理由を誰がどんな考えを持っていますか?

答えて

1

問題が見つかりました。期待していたよりもはるかに簡単でした。新しいViewGroupが毎回作成されていたため、フラグメントは両方ともR.id.fragment_frame_containerビューを含んでいるため、新しいもので置き換えることができるように、古いViewGroupにフラグメントが追加されていました。解決策は、既に存在する場合は毎回新しいViewGroupを作成しないことでした。

関連する問題