我的布局中有一个按钮。我正在使用 ObjectAnimator 和 translationX 动画为该按钮的位置设置动画。
ObjectAnimator btnAnimator = ObjectAnimator.ofFloat(myBtn, "translationX",
ViewHelper.getTranslationX(myBtn), 0);
btnAnimator.addListener(new AnimatorListener() {
@Override
public void onAnimationCancel(Animator arg0) {}
@Override
public void onAnimationEnd(Animator arg0) {
Log.i("TAG","Animation Finished");
}
@Override
public void onAnimationRepeat(Animator arg0) {}
@Override
public void onAnimationStart(Animator arg0) {}
});
btnAnimator.setDuration(animationSpeed).start();
Run Code Online (Sandbox Code Playgroud)
现在,我想为该按钮的 TranslationX 设置一个侦听器,以便在按钮的 TranslationX 位置发生变化时进行通知。
小智 1
两种可能的方法:
1) 重写视图中的onLayout()以手动比较和检测位置变化。
2)在你的视图上使用onLayoutChangeListener:
button.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
int oldTop, int oldRight, int oldBottom) {
// Check your new position vs the old one
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |