ViewPager in Fragment mit Ränder und Seiten-Transformator nicht korrekt wiedergeben

Ich habe einen Viewpager mit Fragmenten drin.

Ich benutze den Code ähnlich wie zB

  • Warum getCacheDir () auf Android verwenden
  • Wie man den Weg zieht, wie ich mich von meinem aktuellen Standort mit Google Maps verschiebe
  • Änderungsfragment (?) Layout oder Aktivität mit Hilfe einer Navigationsschublade
  • Android Shared Präferenzen Beispiel
  • Wie bekomme ich Gerät (AOSP) Build-Nummer in Android-Geräten programmgesteuert?
  • Navigation Schublade: wie immer auf Tabletten geöffnet
  • ViewPager-Rand in PageTransformer-Transformationen

    Und padding so können Sie die verblasst Rand Rand von Fragmenten auf beiden Seiten des Fragments sehen Sie derzeit sehen.

    Aber das Problem ist, wenn der Viewpager zum ersten Mal gestartet wird, die Fragmente auf beiden Seiten sind nicht verblasst und gezoomt.

    Dh die transformPage-Methode meines ZoomOutPageTransformators wird nicht angerufen, bis du mit dem Swiping anfängst, also die anfängliche Off-Page rechts / links oder wo immer die Ansichten falsch aussehen, und dann "springen", um nach rechts zu schauen, sobald ein Swipe fertig ist.

    Irgendwelche Ideen, wie ich es richtig machen kann, also zB wenn ich anrufe

    MyViewPager.setCurrentItem (1) – oder irgendetwas, die Seiten an den Seiten werden entsprechend gezoomt.

    Wie bekomme ich den Viewpager korrekt mit dem zoomoutpagetransformer, der auf die 'off screen' Fragmente angewendet wird

  • Ripple-Effekt über ein RecyclerView-Element mit ImageView
  • Gradle Befehl: crashlyticsUploadDistributionRelease mit Geschmack
  • Durchsichtige Aktivität, die den gesamten Bildschirm füllt
  • Verbesserung der Scroll Smoothness in einem Android ListView
  • SCREEN_ORIENTATION_LANDSCAPE umgedreht - Warum?
  • Android-Syntax-Hervorhebung?
  • 4 Solutions collect form web for “ViewPager in Fragment mit Ränder und Seiten-Transformator nicht korrekt wiedergeben”

    Grundsätzlich gibt die transformTage () -Methode des PageTransformers die falsche Position zurück, wenn du mit Padding und Margin auf dem View-Pager spielst. Scheint ein Framework-Bug zu sein, wie hier angegeben. Die Problemumgehung erklärte, dass es für mich nicht funktioniert hat.

    So kam ich mit einer anderen Lösung, die einen schleppenden Blick auf die Ansicht Pager, sobald Sie Daten auf den zugehörigen Adapter setzen.

    private void invalidatePageTransformer(final ViewPager pager) { new Handler().post(new Runnable() { @Override public void run() { //no need to invalidate if we have no adapter or no items if (pager.getAdapter() != null && pager.getAdapter().getCount() > 0) { //import check here, only fakeDrag if "beginFakeDrag()" returns true if (pager.beginFakeDrag()) { pager.fakeDragBy(0f); pager.endFakeDrag(); } } } }); } 

    Ich weiß, ich bin zu spät, um zu antworten, aber ich stand dem selben Problem gegenüber und fand keine Antwort darauf. Also für alle, die das gleiche Problem stellen, hier ist etwas:

    Also grundsätzlich wird der Seiten-Transformator nicht korrekt für das nächste Element aufgerufen, wenn es das erste Mal lädt, obwohl es gut funktioniert, wenn es zum ersten Mal gescrollt wird.

    Also schrieb ich ein paar Zeilen, um die Seite ein wenig zu scrollen und es zurück zu bekommen, was uns die gewünschte Ansicht bringt:

      viewPager.scrollBy(5,0); viewPager.scrollBy(-5,0); 

    Ich habe ein ähnliches Problem und löste es durch Hinzufügen:

     // ... your ViewPager setup code here myViewPager.setPageMargin(1); 

    Ich habe versucht, die Auffüllung von ViewPager anzupassen, dann habe ich gefunden 45dp wird Artikel, dass in ViewPager ordnungsgemäß zu ordnen.

     <android.support.v4.view.ViewPager ... android:paddingTop="45dp" ... /> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.