2016-08-21 3 views
1

私はボタンを作成し、何らかのイベントが発生した後に画面の一番下に移動したいと考えました。だから、ビューを平行移動した後、ボタンを押したときに押した領域は移動しません。このエリアをビューでどのように動かすのですか?

private TranslateAnimation setupAnimation(float yOffset) { 
    TranslateAnimation animation = new TranslateAnimation(0, 0, 0, yOffset); 
    animation.setDuration(1000); 
    animation.setFillAfter(true); 
    animation.setInterpolator(new AccelerateDecelerateInterpolator()); 
    return animation; 
} 

は、その後、私は私が移動したかったビューのstartAnimation()メソッドにTranslateAnimationオブジェクトを渡すTranslateAnimationオブジェクトを作りました。

私は視覚的に達成したいと思っていますが、視覚的にどこをクリックすることができないことに気付きましたが、ボタンの位置とonClickコールバックが実行されます。

ユーザーが新しい場所でボタンを押すことができるようにするには、翻訳をポストする必要がありますか?

+0

[ボタンは、翻訳アニメーション後のクリックイベントに応答しません](http://stackoverflow.com/questions/10443146/button-not-responding-to-click-event-after-translation-animation) – Shaishav

答えて

3

TranslateAnimationは画面上のピクセルだけを移動します。ボタンの実際の位置は変更されません。移動しているように見えるので、OnClick/OnTouchListenerはアニメーション化されません。

ObjectAnimatorまたはViewPropertyAnimatorを使用して、実際にボタンのプロパティを変更します。

yourButton.animate() 
    .translationY(yOffset) 
    .setInterpolator(new AccelerateDecelerateInterpolator()) 
    .setDuration(1000); 

チェック他の利用可能な方法のためのDocs

は、ここであなたが始めるためにViewPropertyAnimatorを使用した例です。

関連する問題