1

在动画运行后,我在 android 中创建的翻译动画出现问题,我设置的任何点击侦听器都保持在它们在导致异常问题之前所处的确切坐标中,我花了几天时间研究这个问题,但还没有找到修复程序,我发现的一些建议包括将我的目标开发级别更改为 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);
4

2 回答 2

0

问题是 TranslateAnimation 不修改视图的实际位置,只平移视图的绘制位置。

尝试使用PropertyAnimation来执行此操作。他们已经定位到实际查看,而不是仅仅定位绘制的视图。

更新:尝试使用类似的东西

upperView.animate().setDuration(1000).translationX(theDistance - 0);
于 2013-07-08T14:08:59.357 回答
0

您需要了解几件事。android 或较旧的 sdk 将 on click 侦听器保留在对象的原始位置,重要的是您要么在新位置为 on click 创建一个不可见的视图,要么使用较新的sdk

于 2013-03-18T16:17:03.133 回答