如何解决导航回视图后,Android Material Stepper显示空视图
我正在使用Android Material Stepper库,该库在片段中的首次初始化工作正常,但是当我返回到片段时,它显示的是空视图,我已经尝试了一切尝试释放步进器布局的方法,删除了所有视图以及其他所有内容可能但仍然是相同的反应
private void initStepper2() {
Toast.makeText(getActivity(),"initStepper",Toast.LENGTH_SHORT).show();
mStepperLayout = mainView.findViewById(R.id.stepperLayout);
mStepperLayout.setSaveEnabled(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
stepArrayList.clear();
stepArrayList.add(new FirstStepFragment());
stepArrayList.add(new ThirdStepFragment());
stepperAdapter = new StepperAdapter(getActivity().getSupportFragmentManager(),getActivity(),stepArrayList);
mStepperLayout.setAdapter(stepperAdapter);
mStepperLayout.requestLayout();
mStepperLayout.refreshDrawableState();
stepperAdapter.notifyDataSetChanged();
}
},300);
}
这是我初始化步进器的地方
@Override
public void onDetach() {
Toast.makeText(getActivity(),"OnDetach",Toast.LENGTH_SHORT).show();
// mStepperLayout.removeAllViews();
// mStepperLayout.removeAllViewsInLayout();
// mStepperLayout.refreshDrawableState();
// mStepperLayout.requestLayout();
// mStepperLayout.setAdapter(null);
super.onDetach();
}
@Override
public void onDestroyView() {
Toast.makeText(getActivity(),"onDestroyView",Toast.LENGTH_SHORT).show();
// mStepperLayout.removeAllViews();
// mStepperLayout.removeAllViewsInLayout();
// mStepperLayout.refreshDrawableState();
// mStepperLayout.requestLayout();
// mStepperLayout.setAdapter(null);
super.onDestroyView();
}
@Override
public void onPause() {
Toast.makeText(getActivity(),"onPause",Toast.LENGTH_SHORT).show();
// mStepperLayout.removeAllViews();
// mStepperLayout.removeAllViewsInLayout();
// mStepperLayout.refreshDrawableState();
// mStepperLayout.requestLayout();
// mStepperLayout.setAdapter(null);
super.onPause();
}
我已经尝试了所有这些方法,但仍然没有得到
这是初始化片段时我第一次得到的东西
这是我第二次重新浏览片段
mainView.findViewById(R.id.L1).setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
navController = Navigation.findNavController(mainView);
navController.navigate(R.id.action_newComplaintFragment_to_registerNCFragment);
}
});
这就是我通过导航地图使用android x导航控制器导航到片段的方式
解决方法
您在此处使用错误的FragmentManager
:
stepperAdapter = new StepperAdapter(getActivity().getSupportFragmentManager(),getActivity(),stepArrayList);
只要您的片段完全包含在另一个片段中(例如您的mStepperLayout
是NewComplainFragment
的一部分),就需要使用childFragmentManager
,而不要活动的FragmentManager:
stepperAdapter = new StepperAdapter(getChildFragmentManager(),stepArrayList);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。