2016-03-07 58 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版本。 –