2017-04-12 74 views
1

我用我的片段之间的动画:Android的新片段,片段动画中出现以下旧

在幻灯片左起:

<?xml version="1.0" encoding="utf-8"?> 
<set> 
<objectAnimator 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="600" 
    android:propertyName="x" 
    android:valueFrom="2000" 
    android:valueTo="0" 
    android:valueType="floatType" 
    android:fillAfter="true"/> 
</set> 

幻灯片中右:

<?xml version="1.0" encoding="utf-8"?> 
<set> 
    <objectAnimator 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="600" 
     android:propertyName="x" 
     android:valueFrom="0" 
     android:valueTo="-400" 
     android:valueType="floatType"/> 
</set> 

该动画将前一个片段移到左侧,而新的片段从右侧移动。我使用它与片段事务。

transaction.setCustomAnimations(R.animator.slide_in_from_left,R.animator.slide_in_from_right); 

我有麻烦时,新的片段来他下面的一个较旧的滑动,用于修复它,我把一个标高上我的新片段,但我想21的下方 对API的解决方案是否有可能强制新片段高于旧片段

回答

0

如果我理解正确,那么您在新片段上使用android:elevation属性(如果没有,请随时写出有关您的方法的内容) - 尽管它只适用于棒棒糖及以上版本,你也提到过。但是,根据下面的链接主题,可以通过几种方法实现对棒棒糖前设备的提升效果。

"android:elevation=" doesn't work on devices pre-Lollipop with compile API21


编辑后的第一个评论:好了,对不起,当我搜索的话题有点误解你的问题... :)

,有一些有趣的例子新片段与旧片段重叠,它们列在下面。前两个例子需要一些特殊的布局设计和现有视图类的扩展,但也许其中之一就是你要找的。

而且(没有源代码),我可以建议你2个方面:

  • 您搜索可以通过使用 活动显示UI和startActivity(intent)overridePendingTransition()方法的活动中可以完美实现的动画效果。但是,如果您真的想使用片段 ,也许您会跳过此操作。
  • 最后一个(我认为最简单的)解决方案可能是通过添加新的片段来重叠旧片段,而不是替换它。不过,我认为这是最糟糕的 解决方案,因为可能的内存使用问题(较旧的 碎片不会被删除,只是简单地被较新的碎片褪色)。

我希望我能帮助... :)

+0

我把高程,因为它是我找了把上面的动画,在过去一个新片段的唯一途径。您向我展示的链接说明如何重现阴影效果确定高程的外观,但这不会解决我的问题 – Vodet

+0

请参阅我的编辑答案。 – Geryson