O mně

Autorkou blogu je jednadvacetiletá studentka ČVUT FEL – STM - Softwarové inženýrství. Ve volných chvílích koketuje s programovacími jazyky, pracuje jako virus analytik v AVAST Software a zbožňuje Android, Google a MacBook :-)

 

Před časem jsem u jednoho Android projektu potřebovala deaktivovat defaultní animace aktivity, která je přímo v Android frameworku nadefinovaná na “slide-in” animaci zprava doleva. Vzhledem k tomu, že se mi nepodařilo vygooglit žádné rozumné řešení, přišla mi vhod rada od @ondraz, kterou alespoň formou tohoto článku zanechám příštím generacím.

Každá aktivita má totiž nějaké téma (theme) a to má přímo v Android Frameworku nadefinované atributy vztahující se k animacím, které je možné definováním vlastního tématu přepsat. V řeči XML to vypadalo nějak takto:

<style name="NoAnimationTheme" parent="ParentTheme">
<item name="android:windowAnimationStyle">@null</item>
</style>

Předchozí kus kódu stačí umístit do themes.xml. V mém případě měla aktivita už vlastní téma nadefinované (ParentTheme), které nové téma dědí pro zachování všech ostatních atributů. V Android Manifestu je pak aktivitám, které mají být bez animace, potřeba přidat následující řádek.


android:theme="@style/NoAnimationTheme"

3 Responses to “Změna defaultní animace Android aktivity”

  1. nebo stačí přidat do intentu, který spouští aktivitu, tenhle flag Intent.FLAG_ACTIVITY_NO_ANIMATION;

    Martin Pelant

  2. Ano, coz zrusilo animaci pri prvnim vytvoreni aktivity, ale uz ne kdyz se na ni aplikace pozdeji presla (ono v tomto pripade byl problem jeste v tom, ze slo o custom implementaci tabu) cili tohle nestacilo stejne jako nic jineho, co se da jednim jednoduchym dotazem vykuchat z Google. Proto tenhle clanek :)

    AlenKa

  3. Polština vede.

    překlad polština

Leave a Reply