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