android– 在ViewPager和setFillAfter上使用动画

android– 在ViewPager和setFillAfter上使用动画,第1张

概述我有一个ViewPager,我需要在按下按钮时整体移动.我用这个动画.当我按它时,我翻译’x’.我使用setFillAfter(true)来保持新的位置.但是当我更改ViewPager的页面时,它会跳回原来的x位置!我只在Android4.1上看到过这个问题,用Android4.0没有问题!所以它看起来像Android中的某种回归

我有一个VIEwPager,我需要在按下按钮时整体移动.我用这个动画.

当我按它时,我翻译’x’.我使用setFillAfter(true)来保持新的位置.
但是当我更改VIEwPager的页面时,它会跳回原来的x位置!

我只在Android 4.1上看到过这个问题,用AndroID 4.0没有问题!所以它看起来像AndroID中的某种回归.

我附上了一个测试项目,在那里我可以重现这个问题而不需要我周围的所有其他东西.我认为最好是帮助我解决这个问题,以便在Eclipse中导入项目并亲自查看.

我还添加了视频,一个在我的HTC One X上我看到了问题,而另一个在平板电脑上安装了AndroID 4.0,问题不在那里.

我一直在拼命想要解决这个丑陋的副作用,但直到现在还没有运气……

(对不起大电影文件…)

Video of Android 4.0 without the side effect

Video Android 4.1 with the side effect

the project where you can reproduce the issue with

编辑:

我添加了以下内容:

@OverrIDepublic voID onAnimationEnd(Animation animation) {    relativeLayout.LayoutParams lp = (androID.Widget.relativeLayout.LayoutParams) myVIEwPager.getLayoutParams();    if (!i)        lp.setmargins(300,0,0,0);    else        lp.setmargins(0,0,0,0);    myVIEwPager.setLayoutParams(lp);}

之后它会保持在正确的位置,但它会快速闪烁,就像动画在最后仍然显示一样,当我更改边距时,它仍会显示动画后的偏移量.然后它跳到正确的位置.

解决方法:

主要问题似乎是动画类型的选择不正确.您会看到,VIEw Animation作为工具不适用于VIEwPager等复杂的交互式对象.它仅提供绘图场所的低成本动画.动画VIEwPager响应用户动作的视觉行为是未定义的,不应该依赖它.
丑陋的电影,当你用真实物体代替“gost”时,这是很自然的.

自API 11以来打算在您的案例中使用的机制是构建在VIEws中以优化性能的专用属性动画:VIEwPropertyAnimator,或者不是专门的,但是更通用的ObjectAnimator和AnimatorSet.

Property animation使VIEw真正改变了它的位置和功能.

要制作项目,使用VIEwPropertyAnimator,请将您的侦听器设置更改为:

btn.setonClickListener(new OnClickListener() {    boolean b = false;    @OverrIDe    public voID onClick(VIEw v) {        if(b) {            myVIEwPager.animate().translationX(0f).setDuration(700);        }        else {            myVIEwPager.animate().translationX(300f).setDuration(700);        }        b=!b;    }});

如果只想使用xml配置,请坚持使用| ObjectAnimator和AnimatorSet.请仔细阅读以上链接以获取更多信息.

如果你急于支持预蜂窝设备,你可以使用Jake Warton的NineOldAndroids项目.希望有所帮助.

总结

以上是内存溢出为你收集整理的android – 在ViewPager和setFillAfter上使用动画全部内容,希望文章能够帮你解决android – 在ViewPager和setFillAfter上使用动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存