2014-01-29 50 views
2

语境:我有一个活动ItemDetailActivity和2片段,ItemDetailFrontFragmentItemDetailBackFragment。这两个片段在ItemDetailActivity中被托管,并且像卡片的正面和背面一样(考虑常规卡片组),并且我在它们之间切换以便用户看到卡片背面的附加信息。我也有动画附加到片段交易:前,后,前,后退;并用它们的方式:奥飞动漫会留下痕迹

getFragmentManager() 
      .beginTransaction().setCustomAnimations(
        R.animator.card_flip_back_in, R.animator.card_flip_front_out, 
        R.animator.card_flip_front_in, R.animator.card_flip_back_out) 

动画的一个例子,这里的card_flip_front_out

<set xmlns:android="http://schemas.android.com/apk/res/android"> 

<objectAnimator 
     android:valueFrom="0" 
     android:valueTo="-180" 
     android:propertyName="rotationY" 
     android:interpolator="@android:interpolator/accelerate_decelerate" 
     android:duration="@integer/card_flip_time_full"/> 

<objectAnimator 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:duration="@integer/card_flip_time_half"/> 

<objectAnimator 
     android:valueFrom="1.0" 
     android:valueTo="0.8" 
     android:valueType="floatType" 
     android:propertyName="scaleY" 
     android:duration="@integer/card_flip_time_quarter"/> 

<objectAnimator 
     android:valueFrom="1.0" 
     android:valueTo="0.6" 
     android:valueType="floatType" 
     android:propertyName="scaleX" 
     android:duration="@integer/card_flip_time_quarter"/> 

问题:上述实现的每一个部分完美的作品,并按照计划,除了一个视觉故障。当卡的顶部旋转至ActionBar之上时,该片段中的布局轨迹仍然绘制在ActionBar之上。例如,如果在该片段中,我有一个红色的ImageView,并且其中的一部分在ActionBar之上旋转,那么它上面仍然存在红色线索。

我马上遇到了这个问题,因为我加入了alpha动画。如果我从集合中删除它,那么这个问题就会消失。不幸的是,我需要动画alpha,所以我无法删除它。

我尝试将ActionBar设置为叠加层,然后向版式添加填充以将其压低到正确位置,但这并未改变任何内容。动画仍然绘制在ActionBar之上。

+0

这真是奇怪......显然,这不是对的Nexus 5这是一个问题,但是,在的Nexus 7 2012年都运行4.4.2 –

+0

我看到了同样的问题,你看着办吧出来吗? – Justin

+0

不,我只是做了动画,以便边缘不再重叠。 –

回答

0

由于这个问题仍然在于,我建议稍微改变了动画,以不重叠的动作条。例如,对要为其设置动画的内容进行大小调整,以便在ActionBar下移动。这就是我最终所做的,不仅解决了问题,而且看起来更加清晰。

我还建议用新的支持库V21,也许是工具栏API试图出来,并检查他们设法解决此问题与这些2次更新。可能工作,可能无法正常工作。无论如何值得一枪。