0

私のアプリには 2 つのフラグメントがあり、そのうちの 1 つ (FragmentSlidingUp) は上にスライドして、もう 1 つ (FragmentContent) を完全に覆うことができます。このライブラリをスライド アップhttps://github.com/umano/AndroidSlidingUpPanelに使用します。私が抱えている問題は、FragmentSlidingUp が上にスライドし、FragmentContent が表示されないときに、FragmentContent の LiveData オブザーバーが一時停止しないことです。フラグメントが表示されていないときにフラグメントのライフサイクル状態を Paused に設定して、フラグメントが再び表示されたときに LiveData オブザーバーが一時停止され、自動的に再開されるようにする方法はありますか? ありがとう。

4

1 に答える 1

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
        }
    });
于 2017-10-26T04:20:54.453 に答える