Повторно выполняется код при возврате во Fragment
Во Fragment(ClassA) есть компонент ChipGroup, в нём два Chip'a, один Checked=true, второй false. На обработчик ChipGroup.setOnCheckedChangeListener, повешен небольшой код, инициализируется в методе onViewCreated. При переходе во Fragment2(ClassB) с addToBackStack("test"), а затем из Fragment2(ClassB) обратно, через метод getParentFragmentManager().popBackStack();. После того, как первый переключить в False, а второй в True и перейти во второй фрагмент и обратно, код внутри Listener выполняется повторно. Хотя по логике, должна быть лишь переинициализация. Почему так, и как с таким бороться?
public class ClassA extends Fragment {
private View view;
private RecyclerView recyclerView = null;
private ChipGroup chipGroup = null;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
this.view = view;
init();
}
private void init() {
chipGroup = view.findViewById(R.id.chip_group);
chipGroup.setOnCheckedChangeListener((group, checkedId) -> {
Log.w(TAG, "print!");
});
}
}
Источник: Stack Overflow на русском