微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

导航回视图后,Android Material Stepper显示空视图

如何解决导航回视图后,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();
    }
    

我已经尝试了所有这些方法,但仍然没有得到

enter image description here

这是初始化片段时我第一次得到的东西

enter image description here

这是我第二次重新浏览片段

 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);

只要您的片段完全包含在另一个片段中(例如您的mStepperLayoutNewComplainFragment的一部分),就需要使用childFragmentManager,而不要活动的FragmentManager:

stepperAdapter = new StepperAdapter(getChildFragmentManager(),stepArrayList);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?