7

こんにちは友人私はmovies.xml、つまりcontainer、detail_screenに2つのフレームレイアウト持っます 。not.if 提示された場合は、そのフラグメントを削除したいだけです。

    if (getSupportFragmentManager().findFragmentByTag("MyFragment") != null) {
        getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("MyFragment")).commit();
}

しかし、フラグメントがアンドロイドのフレームレイアウトに表示されているかどうかをプログラムで確認する方法は他にありますか?

4

2 に答える 2

13

次のようにソリューションを作成しました。つまり、フラグメントを details_screen に追加する前に、フラグメントが既に表示されているかどうかを確認し、それをポップしてから、新しいフラグメントを追加します。

if (getSupportFragmentManager().findFragmentById(R.id.detail_screen) != null) {

        getSupportFragmentManager().popBackStack();

            } //to do add fragment

それがうまくいくことを願っています。

于 2013-08-27T11:11:59.023 に答える
8

またはメソッドを使用しそれを見つける必要があります。返されたインスタンスが null でない場合、フラグメントは存在します。さらに、メソッドを使用して、フラグメントがタグを使用してレイアウトで定義されているか、プログラムで追加されているかを確認できます。findFragmentByTag()findFragmentById()Fragment.isInLayout()<fragment>

于 2013-08-26T13:39:10.373 に答える