-1

私は Android マテリアル ステッパー ライブラリを使用していますが、これは初めてフラグメントで初期化するときに正常に動作しますが、フラグメントに戻ると空のビューが表示されます ステッパー レイアウトを解放しようとすべてのビューと他のすべてを削除しようとしましたが、まだ可能です同じ応答

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

私はこれらすべてを試しましたが、まだ取得できません

ここに画像の説明を入力

これは、フラグメントを初期化するときに初めて取得するものです

ここに画像の説明を入力

フラグメントに再度移動するのはこれが 2 回目です

 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ナビゲーションコントローラーを使用してフラグメントに移動する方法です

4

1 に答える 1