Жизненный цикл фрагмента для видимости изменен

В моем приложении есть два фрагмента, и один из них (FragmentSlidingUp) может скользить вверх и полностью закрывать другой (FragmentContent). Я использую эту библиотеку для перемещения вверх https://github.com/umano/AndroidSlidingUpPanel. У меня проблема в том, что наблюдатели LiveData в FragmentContent не приостанавливаются, когда FragmentSlidingUp скользит вверх, а FragmentContent не отображается. Есть ли способ установить для состояния жизненного цикла фрагмента значение «Приостановлено», когда фрагмент не отображается, чтобы наблюдатели LiveData были приостановлены и возобновлены автоматически, когда фрагмент снова станет видимым? Спасибо.




Ответы (1)


Поскольку эта библиотека использует наложение окна, я не думаю, что это возможно сказать в вашем классе «FragmentContent», однако вы можете установить слушателя на скользящую панель, а затем выполнить вызов FragmentContent, когда скользящее состояние открыто. Вот в чем суть.

    slidingPanelLayout.addPanelSlideListener(new PanelSlideListener() {
        @Override
        public void onPanelSlide(View panel, float slideOffset) {
            Log.i(TAG, "onPanelSlide, offset " + slideOffset);
        }

        @Override
        public void onPanelStateChanged(View panel, PanelState previousState, PanelState newState) {
            Log.i(TAG, "onPanelStateChanged " + newState);
            // Here's where you test the state, when open tell fragmentcontent to pause
        }
    });
person eclipse1203    schedule 26.10.2017
comment
спасибо за суть. Мне нужен способ уведомить наблюдателей LiveData о прекращении обновления при раскрытии панели или способ изменить состояние жизненного цикла во фрагменте. - person user3613696; 27.10.2017