2017-04-12 58 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