如何将FAB转换为弹出菜单?

时间:2016-12-09 10:23:06

标签: android android-animation

根据material design guideline "浮动动作按钮可以转换为单张材料,其中包含所有动作"。

我想在不使用第三方库的情况下创建以下动画。

enter image description here

1 个答案:

答案 0 :(得分:6)

首先,您需要以小部分剪切动画。 在那个例子中,我可以推导出3个步骤:

  1. 点击事件触发的FAB上的连锁反应。
  2. 左侧的翻译适用于FAB。
  3. 应用于卡片的圆形显示动画。
  4. 所以你需要创建一个FAB(visible)和一张卡片(invisible)。 FAB在它的初始位置和卡最后一个。在FAB上触发涟漪效果(步骤1)并再次在FAB上移动事件结束时(步骤2结束),您只需要关闭FAB并在卡上启动显示动画(步骤3)

    要启动循环显示动画,只需调用ViewAnimationUtils.createCircularReveal方法即可。通过您的卡片视图,X,Y开始坐标,半径,就是这样!难点肯定是找到每个动画之间的最佳持续时间和开始/结束坐标,以使其尽可能平滑。

    如果您愿意,可以在此处查看我的帖子https://stackoverflow.com/a/41957295/1053880。我使用圆形显示动画在两个工具栏之间创建一个切换。你的代码的某些部分将与我的相似(我也在最后恢复了我的目标)。

    GitHub上的示例项目

    https://github.com/fbourlieux/android-material-circular_reveal_animation

    希望这有帮助!

    弗朗索瓦

    有用的链接: