6

Ich versuche, Fragment-Transaktion mit Slide-In/Out-Animation zu implementieren. Ich entwickle auf mindestens 14 SDK so ObjectAnimator ist die einzige Option für mich (gibt es anders? Übersetzung ist nicht verfügbar, wie ich es verstehe).FragmentTransaction mit Slide-In/Out-Animation auf> 4 Leistung

Der Kodex ist sehr einfach:

AnimationView.java - Wrapper-Klasse

public class AnimationView extends LinearLayout { 

public AnimationView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 


public float getYFraction() { 
    return getHeight(); 
} 

public void setYFraction(float yFraction) { 
    final int height = this.getHeight(); 
    setY((height > 0) ? (yFraction * height) : -9999); 
} 
} 

Slide in & aus der xml

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

Animationen arbeitet perfekt, wie Sie habe ich benutzerdefinierte Eigenschaft yFraction sehen können. Aber die Leistung ist sehr schlecht ... bei einigen Tafeln habe ich während der Animation eine horizontale weiße Linie (ca. 3 px Höhe) bemerkt, bei anderen Smartphone Geräten ging es nur langsam (nicht Dauer langsam sondern Flackern).

fand ich einen Weg, es zu beheben, wenn ich anfangswert & endwert stellen Sie die Ansicht Dimension passen, aber es ist nicht generisch und müssen von 0 bis 1 sein generic für alle Ansichten sein

wenn einige schätzen Würde kann mir helfen oder mir sagen, ob es eine andere Möglichkeit gibt, auf Android 14 und höher zu implementieren.

Danke.

Antwort

-4

Versuchen Sie folgendes:

if (mLastMenuWeight > mMenuWeight) { 
transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
}else{transaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);} 
Verwandte Themen