3

アクティビティのフラグメント マネージャーを介して置き換えられるメイン フラグメントはほとんどありません。これらのメイン フラグメントはすべて内部にネストされたフラグメントを持ち、これらは子フラグメント マネージャーを使用して管理されます。

backstackから戻るときに、ネストされたフラグメントのウィジェットの画面状態(スクロール位置、EditText 値など)を保持する必要があります。それを達成するには、作成したビューを再利用する必要があると言っている他のスタックオーバーフローの投稿を見つけました。

View view = null;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (view == null) {
        view = inflater.inflate(R.layout.fragment_layout, container, false);
        // other initializations here
    } else {
        ((ViewGroup) view.getParent()).removeView(view);
    }
    return view;
}

それは最善のアプローチではないと感じており、より大きなアプリケーションではメモリを大量に消費する可能性があります。Androidガイドではフラグメントの簡単な例しか提供されていないため、正しい解決策はわかりません。

4

0 に答える 0