Floating Action Buttons verschwindet auf Scroll

Ich habe gerade die FutureSimple Bibliothek für Floating Action Buttons installiert, und ich denke, es ist einfach schön. Obwohl es nicht die verschwinden auf scroll logic enthalten, ich liebe es. Allerdings möchte ich ein Quick Return Muster implementieren und ich bin auf der Suche nach einem einfachen Weg, es zu tun. Grundsätzlich habe ich so einen ObservableListView-Listener eingerichtet:

listView.setScrollViewCallbacks(new ObservableScrollViewCallbacks() { @Override public void onScrollChanged(int i, boolean b, boolean b2) { } @Override public void onDownMotionEvent() { } @Override public void onUpOrCancelMotionEvent(ScrollState scrollState) { } }); 

Und ich möchte wissen, ob es einen einfachen Weg gibt, um meinen Button zu bewegen (mit einem schnellen Button.animate (). TranslationY (xx)) mit diesem Hörer.

  • Wie behalte ich ViewPager-Status in einem RecyclerView?
  • Schnelle Möglichkeiten zum Importieren von Drawables in Android Studio?
  • Android: Video-Ansicht: wie man ein Video auf einer Schleife spielt
  • Lesen von Daten aus Bluetooth-Gerät in Android
  • Wie bekomme ich Image und Text Center innerhalb einer Schaltfläche
  • Android: BaseAdapter und getLayoutInflater auf separaten Klassendateien
  • So dass, wenn ich nach unten scrollen, verschwindet es, und dann taucht es wieder auf, wenn ich nach oben blättere.

    Ich habe bei verschiedenen Implementierungen nachgedacht, aber ich habe den Jist nicht ganz verstanden (vor allem die "offizielle" Fab Bibliothek von Makovkastar).

    PS: Ich benutze die FutureSimple Bibliothek, weil es Menüs hat.

    Vielen Dank, im Voraus, für Ihre viel gewünschte Hilfe :)!

  • Kann nicht finden, Ameise in der Android-SDK
  • SQLite Fremdschlüssel
  • ActionBar setProgressBarIndeterminateVisibility (false) funktioniert nicht auf Android 2.3
  • NotImplementedException auf Android
  • Wie zeichne ein gefülltes Dreieck in Android-Leinwand?
  • Größenbeschränkung auf beigefügtes Paket?
  • One Solution collect form web for “Floating Action Buttons verschwindet auf Scroll”

    Ich habe mein Problem vor ein paar Wochen gelöst, und ich dachte, ich sollte wahrscheinlich meine eigene Frage hier beantworten 🙂

    Nach einigen Tagen der Forschung, hatte ich festgestellt, dass der beste Weg, um dies zu implementieren ist durch die Verwendung der neuen RecyclerView von Android eingeführt. Sie können kleine Pixel-Änderungen beim Scrollen mit RecyclerView behandeln, aber mit ListView würden Sie fast nie in der Lage sein, dies zu tun (nur kann die Änderung von "Items" gescrollt behandeln). Ich habe einen ScrollView Listener auf meine RecyclerView wie folgt implementiert:

      public abstract class HidingScrollListener extends RecyclerView.OnScrollListener { private static final int HIDE_THRESHOLD = 20; private int scrolledDistance = 0; private boolean controlsVisible = true; @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int firstVisibleItem = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition(); //show views if first item is first visible position and views are hidden if (firstVisibleItem == 0) { if(!controlsVisible) { onShow(); controlsVisible = true; } } else { if (scrolledDistance > HIDE_THRESHOLD && controlsVisible) { onHide(); controlsVisible = false; scrolledDistance = 0; } else if (scrolledDistance < -HIDE_THRESHOLD && !controlsVisible) { onShow(); controlsVisible = true; scrolledDistance = 0; } } if((controlsVisible && dy>0) || (!controlsVisible && dy<0)) { scrolledDistance += dy; } } public abstract void onHide(); public abstract void onShow(); 

    Dieser Code macht MEHR, als nur FABs auf Scroll zu zeigen oder zu verbergen, es behandelt eigentlich eine ziemlich perfekte "Aktionsleiste verschwindet beim Scrollen". Aber ich habe keine Zeit, diesen Code an deine Bedürfnisse anzupassen, aber es funktioniert für unseren Fall hier.

    Um wieder zu unserem Code zu gelangen, können wir, nachdem wir unseren Zuhörer erstellt haben, ihn unseren FABs hinzufügen, indem wir seine Schnittstellen implementieren:

      recyclerView.setOnScrollListener(new HidingScrollListener() { @Override public void onHide() { FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) fam.getLayoutParams(); int fabBottomMargin = lp.bottomMargin; fam.animate().translationY(fam.getHeight()+fabBottomMargin).setInterpolator(new AccelerateInterpolator(2)).start(); } @Override public void onShow() { toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)); fam.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)).start(); } }); 

    Und Voilà!

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.