1

Ich habe eine dynamische Viewpager, die eine Play-Taste auf jedem Fragment hat, die in Pause-Taste beim Klicken ändert.Refreshing Fragment, das nicht im Fokus ist in Viewpager

Nun, was ich versuche zu tun ist, dass, wenn der Benutzer auf Play-Taste in einem anderen Fragment klickt die Wiedergabe-Taste in der letzten Wiedergabe Fragment von Pause zu spielen aktualisieren, dh ich will, dass die Schaltfläche aktiv nur in einem Fragment zu einer Zeit Ruhe sollte in ihrem Standardzustand sein.

Ich habe versucht, dies zu tun mit dem Code folgenden

 pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      previous = current; 
      current = position; 



      try{ 
       if(position!=0) 
       { 
        SwipeFragItem yourFragment =  (SwipeFragItem)mPageAdapter.getItem(previous); 
        yourFragment.refresh(); 

       } 

      } 
      catch (Exception e){ 
       Crashlytics.logException(e); 
      } 


     } 

     @Override 
     public void onPageSelected(int position) { 

     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 

, die in 70% der Zeit meine Aufgabe tun, aber es wird nicht aktualisiert in 30% der Fälle. Ich habe sichergestellt, dass es in diesen 30% der Fälle ausgeführt wird und keine Ausnahme auslöst.

Wenn Sie meinen Ansatz nicht angemessen finden, schlagen Sie bitte einen anderen Weg vor.

Jede Hilfe wird geschätzt. Vielen Dank im Voraus.

Antwort

0

Eine Möglichkeit, die ich mir vorstellen kann, ist die Verwendung des Ereignisbusses. Etwas wie: Greenbot oder Otto

Durch alle Fragmente Registrierung, die Sie in der Ansicht Pager hinzufügen zu einem Ereignis zu hören, die ausgelöst wird, wenn die Play-Taste gedrückt wird, werden alle Fragmente informiert. Das Ereignis muss natürlich einen Identifikator haben, damit Sie wissen, auf welchen Wiedergabeknopf des Fragments geklickt wurde. Wenn es nicht vom selben Fragment stammt, können Sie den Button wieder auf den Standardzustand zurücksetzen. Auch dies ist nur eine Möglichkeit, an die ich denken kann.

Verwandte Themen