2015-05-21 112 views
0

我有一個包含幾個按鈕的佈局。我想使用動畫將此佈局移動到屏幕上的其他位置。當我使用TranslateAnimation時,佈局似乎會移動,但按鈕按下事件仍然只能從其舊位置觸發。我試圖在onAnimationEnd事件中調整視圖的LayoutParams - 這隻會在動畫完成時導致一些可怕的捕捉效果。沒有其他答案似乎給這個問題提供了明確的解決方案。動畫和移動視圖

如何使用動畫移動佈局,同時確保他們的onClick事件是從他們的新位置觸發的?

回答

1

你必須使用ObjectAnimator它實際上將與聽衆移動你的按鈕連接到它們的新位置

ObjectAnimator moveButtonAnimator = ObjectAnimator.ofFloat(layout, "translationX", 0, 200f); 
     moveButtonAnimator.start(); 
     moveButtonAnimator.setDuration(1000); 
+0

你怎麼會同時修改X和Y的值可以在一個動畫? –

+0

我認爲你可以有兩個ObjectAnimator並行工作。 – sector11

+0

我遇到的問題是動畫看起來是即時的,無論我傳遞給setDuration函數的值是多少。這發生在setDuration在start()函數之前和之後(我假定setDuration應該在開始之前)。 –