我正在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”上,下次我打开底页时,它应该会显示为选中。我需要维持这个状态。
现在的情况是,它从一开始就重建了选择芯片,所以状态丢失了。
如何在不重新创建的情况下显示/隐藏底页?
任何帮助都将不胜感激。
谢谢!
1条答案
按热度按时间nbysray51#
当您调用
show()
. 最好使用sharedViewModel
在bottomSheetFragment
以及父活动/片段。您应该保存viewmodel中选择的字段,并将其用于底部工作表。这样才能维持国家。