2011-08-10 14 views
3

res/animでandroid:fillAfter = "true"を設定しました。アンドロイドでのアニメーション後のリスナーが機能しない

私はリスナーにボタンを置くことのLinearLayout中に、Y

へのLinearLayoutを移動したいです。

LinearLayoutのアニメーションの後、そのLinearLayoutは新しい位置にありますが、そのLinearLayoutのボタンにはリスナーがありません。

リスナーは、アンドロイド: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); 
} 

しかし、私はアニメーションのアンドロイドに完全にパーセントを揃えていないので何も、起こらない: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

あなたは

clearanimation() fillenable(false)を閲覧するために、これはmetodsしてみてください

+0

すべてのデバイスにありますか? SE xperia、GS3のようなものだけでか? –

関連する問題