2011-08-10 32 views
3

我在res/anim中設置了android:fillAfter =「true」。Android中的動畫監聽器不工作

我想要一個的LinearLayout移動至Y

成的LinearLayout我把一個按鈕,監聽器。

在LinearLayout的動畫之後,該LinearLayout處於新位置,但該LinearLayout中的按鈕沒有偵聽器。

如果android:fillAfter =「false」,則監聽器就是按鈕所在的位置。

我也試圖與:

public void onAnimationEnd(Animation arg0) 
{ 
    LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
    params.topMargin = 200; 
    _mylayout.setLayoutParams(params); 
    _myAnim.setFillAfter(false); 
} 

但沒有任何反應,因爲我不完全一致的百分比爲動畫的android:toYDelta = 「70%」 和params.topMargin = 200;

我該如何解決這個問題?謝謝

+2

你有沒有找到解決這個問題的方法? –

回答

0

我有這個相同的問題。

所有你需要做的就是用

myButton.setOnClickListener(myListener); 

重新註冊聽衆動畫發生後。

希望這會有所幫助!

+2

沒什麼,我試過了,我把聽衆放到了「public void onAnimationEnd(Animation arg0)」,但是聽衆休息在原來的位置,那就是動畫前的位置 – oscaroxy

3

您的LinearLayout已被移動看似,但它只是在視覺上移動。LinearLayout仍然位於動畫之前。您應該在動畫之後使用以下代碼重新佈局LinearLayout。

mylayout.layout(x,x,x,x); 

如果你有一些問題,這一點,請看看我的問題:

TranslateAnimation Not Working As Expected

0

試試這個metods你的意見

clearanimation() fillenable(假)

+0

它在所有設備上嗎?或只有像SE xperia,GS3? –