Boutons d'action flottants disparaissant sur le défilement

Je viens d'installer la bibliothèque FutureSimple pour les boutons d'action flottants, et je pense que c'est tout simplement magnifique. Bien qu'il ne contienne pas la disparition sur la logique de défilement, je l'aime. Cependant, je voudrais mettre en œuvre un modèle de retour rapide et je cherche un moyen simple de le faire. Fondamentalement, j'ai configuré un écouteur ObservableListView de la manière suivante:

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

Et je veux savoir s'il existe un moyen simple de faire bouger mon bouton (avec un bouton rapide.animate (). TraductionYx (xx)) avec cet auditeur.

  • Navigator.geolocation.getCurrentPosition obtient toujours un code d'erreur 3: time out expired
  • Android Studio Project dit que le projet est déjà sur GitHub malgré le fait que j'ai supprimé le référentiel.
  • Connectez-vous à un périphérique bluetooth non reconnaissable
  • "L'activité exportée ne nécessite pas d'autorisation" lors de la tentative de lancement à partir d'un URI
  • Comment récupérer une liste de polices disponibles / installées dans Android?
  • Positionnement MediaController sur VideoView
  • De sorte que chaque fois que je me déplace vers le bas, il disparaît, puis il réapparaît lorsque je me déplace vers le haut.

    J'ai examiné différentes implémentations, mais je n'ai pas tout à fait compris leur intérêt (en particulier la bibliothèque Fab "officielle" de makovkastar).

    PS: J'utilise la bibliothèque FutureSimple car elle comporte des menus.

    Merci beaucoup, à l'avance, pour votre aide recherchée :)!

  • API Spotify: INVALID_APP_ID
  • "Impossible de dessiner des bitmaps recyclés" lors de l'affichage de bitmaps dans la Galerie attachée à l'Adaptateur
  • NullPointerException lors de la présentation d'un ViewPager une deuxième fois
  • Android: trouver un bouton par identifiant
  • SchemaFactory ne prend pas en charge le schéma XML W3C au niveau 8 de la plate-forme?
  • Erreur: la configuration avec le nom 'défaut' n'est pas trouvée dans Android Studio
  • One Solution collect form web for “Boutons d'action flottants disparaissant sur le défilement”

    J'ai résolu mon problème il y a quelques semaines, et j'ai pensé que je devrais probablement répondre à ma propre question ici 🙂

    Après plusieurs jours de recherches, j'ai constaté que la meilleure façon de mettre en œuvre est en utilisant le nouveau RecyclerView introduit par Android. Vous pouvez gérer de petits changements de pixels dans le défilement avec RecyclerView, mais avec ListView, vous ne pourrez presque jamais le faire (ne peut gérer que le changement de «articles» défilé). J'ai implémenté un écouteur ScrollView à mon RecyclerView comme ceci:

      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(); 

    Ce code fait PLUS que de simplement afficher ou cacher les FAB sur le défilement, il gère réellement un effet d'action "parfait" disparaît lors du défilement. Mais , je n'ai pas le temps de répondre à ce code à vos besoins, mais cela fonctionne pour notre cas, ici.

    Pour revenir à notre code, après avoir créé notre auditeur, nous pouvons l'ajouter à nos FAB en mettant en œuvre ses interfaces:

      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(); } }); 

    Et Voilà!

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.