0

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

答えて

1

このライブラリはウインドウオーバーレイを使用しているので、私はあなたの "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 
     } 
    }); 
+0

要旨のおかげで私が必要とするのは、パネルが展開されたときに更新を停止するようにLiveDataオブザーバに通知する方法、またはフラグメント内のライフサイクル状態を変更する方法です。 – user3613696

関連する問題