2016-03-07 59 views
0

前言中,有很多关于淡入淡出动画的问题,但没有一个看起来有我的确切问题。我的应用程序中有一个浮动操作按钮,我希望在一定的时间和延迟时间内淡出。动画的代码(即使它不应该在浮动动作动作侦听器内部)看起来像这样。在这段代码中,'b'是FAB。浮动动作按钮上的淡出动画

     AlphaAnimation animation1 = new AlphaAnimation(1, 0); 
         animation1.setDuration(1000); 
         animation1.setStartOffset(1000); 
         animation1.setFillAfter(true); 
         b.startAnimation(animation1); 

代码看起来很好,但它只是不工作,和IM所有的想法。我曾尝试按照b.animate()使用b.setAnimation(),但无济于事。我不要想要使用XML,因为动画startOffSet的值依赖于其他组件。

在此先感谢。

* **更新 ***

我已经找到了解决。而不是b.startAnimation(动画),将动画应用于按钮:b.setAnimation(动画)。如果您尝试使按钮/视图隐藏像这样

b.setVisibility(View.INVISIBILE) 

它将使用您指定的动画。

+1

尝试使用'nineolddroids'文库;通常它神奇地修复这些动画问题(“它只是不起作用”的问题) – Shark

+0

神奇的修复是我现在需要的。感谢您的建议,我会检查出来。 –

+1

首先,检查FloatingActionButton上的默认hide()方法是否适合您。这是使FAB消失的标准方法。 – Egor

回答

1

你可以指定你正在使用哪个android支持设计库版本吗? 我测试下面的代码上23.2.0和正在执行动画就好使用以下代码:

final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      AlphaAnimation animation1 = new AlphaAnimation(1, 0); 
      animation1.setDuration(1000); 
      animation1.setStartOffset(1000); 
      animation1.setFillAfter(true); 
      fab.startAnimation(animation1); 
     } 
    }); 
+0

谢谢你的回答Rafay。然而,我已经找到了一个解决方案(见主文章):)。我使用的是23.1.1版本。 –