web-dev-qa-db-fra.com

cacher / montrer fab avec animation d'échelle

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 ?

17
JosephM

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>
23
Max

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.

75
Anuj Sharma

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>
8
CodingRat