我在Android中创建的翻译动画有问题我在动画运行之后运行的任何clicklistener都保留在它们所处的确切坐标中,然后导致异常问题,我花了几天时间研究这个问题并且尚未找到修复,我发现的一些建议包括将我的目标开发级别更改为4.0并更改myLayout.layout(x,x,x,x),这些都不适合我,任何有关我如何能够的建议更改此代码以使任何clicklisteners随布局移动?
upperView = (LinearLayout) findViewById(R.id.upperView);
hiddenMenu = (LinearLayout) findViewById(R.id.hiddenMenu);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Integer width = metrics.widthPixels;
upperView.getLayoutParams().width = width;
hiddenMenu.getLayoutParams().width = (int) (width * 0.75);
int theDistance = hiddenMenu.getLayoutParams().width;
//Run animation
TranslateAnimation anim = new TranslateAnimation(0, theDistance - 0 , 0, 0);
anim.setDuration(1000);
anim.setFillAfter( true );
upperView.startAnimation(anim);
答案 0 :(得分:0)
您需要了解一些事项。 android或较旧的sdk将点击监听器保持在对象的原始位置,重要的是要在新位置创建一个不可见的视图,以便点击或使用较新的sdk。
答案 1 :(得分:0)
问题是TranslateAnimation不会修改视图的实际位置,只能翻译视图的绘制位置。
尝试使用PropertyAnimation执行此操作。 他们已经定位于实际观看,而不仅仅是定位视图。
更新: 尝试使用像
这样的东西upperView.animate().setDuration(1000).translationX(theDistance - 0);