Android Translate Animation导致Clicklistener问题

时间:2013-03-18 15:53:22

标签: java android android-animation translate-animation clicklistener

我在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);

2 个答案:

答案 0 :(得分:0)

您需要了解一些事项。 android或较旧的sdk将点击监听器保持在对象的原始位置,重要的是要在新位置创建一个不可见的视图,以便点击或使用较新的sdk

答案 1 :(得分:0)

问题是TranslateAnimation不会修改视图的实际位置,只能翻译视图的绘制位置。

尝试使用PropertyAnimation执行此操作。 他们已经定位于实际观看,而不仅仅是定位视图。

更新: 尝试使用像

这样的东西
upperView.animate().setDuration(1000).translationX(theDistance - 0);