J'utilise un menu flottant personnalisé. Je dois implémenter une animation d'échelle sur le bouton de menu afficher/masquer comme ici comportement du bouton d'action flottant
Y a-t-il un moyen de faire ça ?
Vous pouvez utiliser ces animations d'échelle pour le bouton fab, cela donne le même effet que le bouton design lib fab.
scale_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<scale
Android:duration="100"
Android:fromXScale="0"
Android:fromYScale="0"
Android:pivotX="85%"
Android:pivotY="85%"
Android:toXScale="1.0"
Android:toYScale="1.0" />
</set>
scale_down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<scale
Android:duration="100"
Android:fromXScale="1.0"
Android:fromYScale="1.0"
Android:pivotX="85%"
Android:pivotY="85%"
Android:toXScale="0"
Android:toYScale="0" />
</set>
La révision de la bibliothèque de support de conception 22.2.1 a ajouté les méthodes hide () et show () à la classe FloatingActionButton
, vous pouvez donc les utiliser à partir de maintenant.
FloatingActionButton mFab;
mFab.hide();
mFab.show();
Vous pouvez y appliquer votre propre animation. Pour plus d'informations vérifiez ceci.
Et pour plus d'informations sur FAB, consultez la documentation officielle.
Chargez ces animations sur votre vue personnalisée. N'oubliez pas de définir le point de pivot à 50% et l'interpolateur à l'interpolateur linéaire.
scale_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<scale
Android:duration="100"
Android:fromXScale="0"
Android:fromYScale="0"
Android:interpolator="@Android:anim/linear_interpolator"
Android:pivotX="50%"
Android:pivotY="50%"
Android:toXScale="1.0"
Android:toYScale="1.0" />
</set>
scale_down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<scale
Android:duration="100"
Android:fromXScale="1.0"
Android:fromYScale="1.0"
Android:interpolator="@Android:anim/linear_interpolator"
Android:pivotX="50%"
Android:pivotY="50%"
Android:toXScale="0"
Android:toYScale="0" />
</set>