Big*_*ner 8 android android-layout
我有两个按钮.当按下第一个按钮时,我将我的布局布局翻译到顶部,从屏幕顶部翻译另一个布局.但是我的问题是当回到第一个布局时,第二个布局的点击事件仍然被触发在它以前的位置.那么它的解决方案是什么?我在SO和Google上都找到了很多,但仍然无法得到正确的解决方案.所以请有人帮我解决这个问题.谢谢你.
TranslateAnimation tr1 = new TranslateAnimation(0, 0, 0, -1100);
tr1.setDuration(1000);
tr1.setFillAfter(true);
layout_login.startAnimation(tr1);
tr1.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
layout_signup.setVisibility(View.VISIBLE);
TranslateAnimation tr2 = new TranslateAnimation(0, 0,
-1100, 0);
tr2.setDuration(1000);
tr2.setFillAfter(true);
tr2.setInterpolator(MainActivity.this,
android.R.anim.linear_interpolator);
layout_signup.startAnimation(tr2);
tr2.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
home_activity_btn_login.setEnabled(true);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
Jam*_*meo 12
我认为这是旧的动画师计划的一个错误(我相信一个非常着名的错误,涉及有时不工作的填充).请尝试使用ObjectAnimator
这是一个例子,
ObjectAnimator oa = ObjectAnimator.ofFloat(view, "translationX", 0, 100f);
oa.setDuration(1000);
oa.start();
Run Code Online (Sandbox Code Playgroud)
如果要沿Y方向移动,可以使用translationY.如果要向两个方向移动,则需要translationX和translationY,并使用AnimatorSet同时播放.
看看这个问题的评论. 使用旧的动画API,显然有点fillAfter(true),按钮点击位置保持不变.这证实了您的问题.所以只需使用新的API,你就应该处于良好的状态.
| 归档时间: |
|
| 查看次数: |
10557 次 |
| 最近记录: |