如何显示/隐藏片段而不重新创建它?

ohfgkhjo  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(332)

我正在android应用程序中使用bottomsheetdialogfragment。我在用java。我通过以下方式显示底页:

ActionBottomDialogFragment dialogFragment = ActionBottomDialogFragment.newInstance();

        showButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialogFragment.show(getActivity().getSupportFragmentManager(), ActionBottomDialogFragment.TAG);
            }
        });

我看到的是它调用oncreatedialog方法,然后调用onviewcreated方法。这是第一次没问题。
现在我使用以下方法隐藏底页:

ImageButton close = view.findViewById(R.id.closeButton);
        close.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });

当我再次按下show按钮时,它再次调用oncreatedialog方法。我有一个选择芯片的动态列表,我希望状态和我离开时一样。如果我把它放在勾选“选项a”上,下次我打开底页时,它应该会显示为选中。我需要维持这个状态。
现在的情况是,它从一开始就重建了选择芯片,所以状态丢失了。
如何在不重新创建的情况下显示/隐藏底页?
任何帮助都将不胜感激。
谢谢!

nbysray5

nbysray51#

当您调用 show() . 最好使用 sharedViewModelbottomSheetFragment 以及父活动/片段。您应该保存viewmodel中选择的字段,并将其用于底部工作表。这样才能维持国家。

相关问题