使用缩放动画隐藏/显示fab

时间:2016-01-01 05:21:48

标签: android material-design floating-action-button

我正在使用自定义的floatingactionmenu。我需要像这里一样在显示/隐藏菜单按钮上实现缩放动画 {{3}}

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:65)

设计支持库修订版22.2.1将hide()和show()方法添加到FloatingActionButton类,因此您可以从现在开始使用这些方法。

FloatingActionButton mFab;
mFab.hide();
mFab.show();

您可以在其上应用自己的动画。 有关详细信息check this.
有关FAB的更多信息,请查看official documentation.

答案 1 :(得分:18)

您可以将这些缩放动画用于fab按钮,它可以提供与设计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>

答案 2 :(得分:8)

在自定义视图中加载这些动画。不要忘记将轴心点设置为50%,将插补器设置为线性插补器。

<强> 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>