Повторно выполняется код при возврате во Fragment

Рейтинг: 0Ответов: 0Опубликовано: 05.07.2023

Во 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!");
        });
    }
}

Ответы

Ответов пока нет.