Używam overridePendingTransition, gdy moje działanie jest tworzone i działa dobrze. Widzę, że zanikanie działa świetnie, ale kiedy próbuję animować zakończenie działania, nadal wykonuje domyślny slajd od prawej do lewej.
Po raz pierwszy próbowałem zdefiniować animację wyjściową, kiedy rozpoczynam ćwiczenie, w następujący sposób:
Intent myIntent = new Intent(a, SkdyAlert.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
a.startActivity(myIntent);
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
AnimationHelper.overridePendingTransition(a, R.anim.fadein, R.anim.fadeout);
}
Potem spróbowałem to zrobić, kiedy skończę ćwiczenie
okBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
AnimationHelper.overridePendingTransition(activity, 0, R.anim.fadeout);
}
}
});
Ale żadne z tych podejść nie zapobiegnie przesuwaniu się „od prawej do lewej” podczas animacji wyjścia. Jakieś pomysły na temat tego, co robię źle?
android
animation
android-activity
b-ryce
źródło
źródło
R.anim.nothing
wygląda?finish()
metodę, aby uniknąć przejść we wszystkich przypadkach (wciśnięty przycisk Wstecz, jako przykład):@Override public void finish() { super.finish(); overridePendingTransition(0, 0); }
Na to pytanie już udzielono odpowiedzi, ale najskuteczniejszym sposobem umieszczenia animacji podczas wychodzenia z działania jest zastąpienie metody „finish ()” powiązanego działania:
źródło
Sugerowałbym użycie metody isFinishing () do skonfigurowania animacji w onPause zamiast wywoływania finish ()
źródło
źródło
Rozwiązałem ten problem, stosując takie podejście:
aby otworzyć animacją:
Aby zakończyć animacją:
źródło
Spójrz na zrobienie tego za pomocą tematu. Możesz zdefiniować animacje wejścia dla działań lub całej aplikacji
źródło
Idąc za odpowiedzią @schwiz, oto nadpisanie animacji dla wbudowanego motywu Dialog, w którym zdefiniowałem lokalne animacje slide_up i slide_down. Moja aktywność określa motyw MyDialog, aby umożliwić te przejścia.
źródło
Użyj startActivityForResult, aby rozpocząć aktywność dziecka, a onActivityResult () aktywności nadrzędnej:
źródło