przełączanie czynności bez animacji
Jak poprawnie użyć znacznika Intent FLAG_ACTIVITY_NO_ANIMATION
w pliku AndroidManifest? Uważam, że mój problem jest banalny, ale nie mogę znaleźć dobrego przykładu lub 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 compliator, ale data
nie jest poprawny.
Chcę tylko wyłączyć animację w przypadku przełączania między aktywnościami. Mogę używać getWindow().setWindowAnimations(0);
w onCreate lub onResume, ale używanie flag jest lepszym sposobem, prawda?
Mogę użyć również 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 Androidzie Manifest. Aby wyłączyć animację również w przypadku powrotu z drugiej aktywności do pierwszej.
7 answers
Możesz stworzyć styl,
<style name="noAnimTheme" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
I ustaw go jako motyw dla swojej aktywności w manifeście:
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>
Można również zdefiniować styl, aby określić niestandardowe animacje wejścia i wyjścia. http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-16 14:24:59
Jeśli twój kontekst jest działaniem możesz wywołać overridePendingTransition :
Wywołanie natychmiast po jednym ze smaków startActivity(Intent) lub Zakończ, aby określić jawną animację przejścia do wykonania następnego.
Więc programowo:
this.startActivity(new Intent(v.getContext(), newactivity.class));
this.overridePendingTransition(0, 0);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 11:33:44
Wypróbuj ten kod,
this.startActivity(new Intent(v.getContext(), newactivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-01 12:35:26
Możesz to zrobić również we wszystkich czynnościach, z których nie chcesz przejść:
@Override
public void onPause() {
super.onPause();
overridePendingTransition(0, 0);
}
Podoba mi się to podejście, ponieważ nie musisz zadzierać ze stylem swojej działalności.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-02 07:37:41
Nie jest to przykładowe użycie ani wyjaśnienie, jak używać FLAG_ACTIVITY_NO_ANIMATION
, jednak odpowiada, jak wyłączyć animację przełączania Activity
, Jak zadano w tytule pytania:
Android, Jak wyłączyć efekt "wytrzeć" podczas rozpoczynania nowej aktywności?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:39
Oto jednoliniowe rozwiązanie, które działa tak nisko, jak minSdkVersion 14
, które należy wstawić w sobie res/styles.xml
:
<item name="android:windowAnimationStyle">@null</item>
Like so:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:windowAnimationStyle">@null</item>
</style>
...
</resources>
Zdrówko!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-15 06:39:33
Stwórz swój własny styl nadpisujący android: Theme
<style name="noAnimationStyle" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
Następnie użyj go w oczywisty sposób:
<activity android:name=".MainActivity"
android:theme="@style/noAnimationStyle">
</activity>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-30 00:43:38