1. ホーム
  2. android

[解決済み] バックボタンのようにButtonを使用して現在のフラグメントを閉じるには?

2022-12-01 01:10:04

質問

イメージボタンを使って、現在のフラグメントを閉じようとしています。

フラグメントAで、ボタンをクリックするとフラグメントBに切り替わります。

また、Fragment-Bでボタンをクリックすると、Fragment-Cに遷移し、Fragment-Bを閉じます。

フラグメント-Cで戻るボタンを押すと、フラグメント-Aに戻ります。

私が試したコードは次のようなものです。

camera_album = (ImageButton) view.findViewById(R.id.camera_album);

camera_album.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {

                    closefragment();
        Fragment fragment = FileBrowserFragment.newInstance(null, null, null) ;
        MainActivity.addFragment(LocalFileBrowserFragment.this, fragment) ;


    }
});

private void closefragment() {
    getActivity().getFragmentManager().beginTransaction().remove(this).commit();
}

フラグメントBで戻るボタンを押すと、フラグメントCに切り替わります。

しかし、Fragment-Cで戻るボタンをクリックしても、Fragment-Aには戻りません。 空の背景に戻ります。もし、Fragment-Aに戻りたければ、もう一度、戻るボタンをクリックする必要があります。

そうすると、現在のフラグメントを完全に閉じることはできないようです。

Androidの戻るボタンのように、現在のフラグメントを終了させるにはどうすればよいのでしょうか?

どのように解決するのですか?

フラグメントAから、Bに行くには、AをBに置き換えて addToBackstack() の前に commit() .

さて、フラグメントBから、Cに行くには、まず popBackStackImmediate() これでAをCに置き換えることができます。