android - fragment设置关于translationY属性的objectAnimator属性动画
PHP中文网
PHP中文网 2017-04-17 17:24:39
0
2
742

在给fragment设置关于translationY属性的objectAnimator属性动画时,如果valueFrom的值大于等于fragment的高度时(下面代码中的第一个动画),fragment的这个动画不能在activity上显示出来,当valueFrom的值小于fragment的高度时,fragment的这个动画就能在activity上正常显示。请问为何会出现这种情况。
fragment设置动画的代码:

@Override public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) { Animator anim; if (enter) { anim = ObjectAnimator.ofFloat(mRootView, "translationY", mRootView.getHeight(), 0).setDuration(2000); } else { anim = ObjectAnimator.ofFloat(mRootView, "translationY", 0, mRootView.getHeight()-1).setDuration(2000); } return anim; }

fragment的mRootView的layout:

   
PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen (2)
大家讲道理

你把translationY换成y看看,

    Ty80

    目前找到了一个解决方法,出现这个问题好像和activity的layout有关。
    activity的layout:

      

    在activity的layout里我定好高度的有button、imageView,在imageView下面到屏幕底也就是ayout_marginBottom="85dp"的空间里可以说是空的(这样的一个意思,不好表达)。我现在的解决方式是在这个空间的底部加一个1dp高的view:

    加了这个,即使valueFrom的值大于等于高度,动画也可以正常显示,但是我不知道为什么会发生这种情况,感觉如果我不加这个view的话,存放fragment的frameLayout就在上述所说那个“空”的空间里,所以显示不出来。我不清楚这个过程源码里是如何绘制的,希望得到解答。

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!