可见性的片段生命周期发生了变化

时间:2017-10-26 04:03:07

标签: android android-fragments android-architecture-components android-livedata android-architecture-lifecycle

在我的应用程序中,我有两个片段,其中一个片段(FragmentSlidingUp)可以向上滑动并完全覆盖另一个片段(FragmentContent)。我使用此库进行向上滑动https://github.com/umano/AndroidSlidingUpPanel。我遇到的问题是当FragmentSlidingUp向上滑动并且FragmentContent不可见时,FragmentContent中的LiveData观察者不会暂停。当片段不可见时,有没有办法将片段生命周期状态设置为Paused,以便当片段再次可见时,LiveData观察者将暂停并自动恢复?感谢。

1 个答案:

答案 0 :(得分: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
        }
    });