Jak prawidłowo używać flagi Intent FLAG_ACTIVITY_NO_ANIMATION
w pliku AndroidManifest? Wydaje mi się, że mój problem jest trywialny, ale nie mogę znaleźć dobrego przykładu ani rozwiązania.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
Jednak żaden błąd nie jest zgłaszany przez osobę nadzorującą, ale data
nie jest poprawny. Chcę tylko wyłączyć animację w przypadku przełączania między działaniami. Mogę używać getWindow().setWindowAnimations(0);
raczej w onCreate lub onResume, ale użycie flagi jest lepszym sposobem, prawda?
Mogę również użyć w kodzie:
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
Ale chcę użyć tej flagi w manifeście Androida. Aby wyłączyć animację również w przypadku powrotu z drugiej czynności do pierwszej.
Odpowiedzi:
Możesz stworzyć styl,
i ustaw go jako motyw swojej aktywności w manifeście:
Możesz także zdefiniować styl, aby określić niestandardowe animacje wejścia i wyjścia. http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation
źródło
Jeśli kontekst jest aktywnością, możesz wywołać overridePendingTransition :
Tak więc programowo:
źródło
overridePendingTransition
został dodany na poziomie API 5. Więc nie, nie działa na "każdej" wersji Androida, ale myślę, że celujesz w wyższy poziom API niż 5.Wypróbuj ten kod,
źródło
Możesz to również zrobić we wszystkich działaniach, z których nie chcesz przechodzić:
Podoba mi się to podejście, ponieważ nie musisz mieszać ze stylem swojej działalności.
źródło
To nie jest przykładowe użycie ani wyjaśnienie, jak używać
FLAG_ACTIVITY_NO_ANIMATION
, jednak odpowiada, jak wyłączyćActivity
animację przełączania, zgodnie z pytaniem w tytule:Android, jak wyłączyć efekt „czyszczenia” przy rozpoczynaniu nowej aktywności?
źródło
Oto rozwiązanie z jedną linijką, które działa tak nisko, jak
minSdkVersion 14
należy włożyć w siebieres/styles.xml
:tak:
Twoje zdrowie!
źródło
Linia w stylu motywu działa dobrze, ale zastępuje animację białym ekranem. Szczególnie na wolniejszym telefonie - jest to naprawdę denerwujące. Tak więc, jeśli chcesz natychmiastowego przejścia - możesz użyć tego w stylu motywu:
źródło
stwórz swój własny styl nadrzędny android: Theme
Następnie użyj go w manifestie w następujący sposób:
źródło
Po rozpoczęciu zamiaru możesz użyć tego kodu:
Jeśli zostanie użyty, intencja będzie działać bez animacji ani przejść
źródło