2015-09-08 2 views
0

У меня есть LoginActivity и MainActivity в моей заявке. Мне нужно удалить LoginActivity из задней стопки, когда пользователь успешно войдет в систему, MainActivity при выходе пользователя из системы. Поэтому я добавил ClearTask и SingleTask флаги намерений для MainActivity и LoginActivity.Деятельность с измененной анимацией с намерением SingleTask и ClearTask

Это работает так, как ожидалось, но это вызвало еще одну проблему - я потерял пользовательские анимации, зарегистрированные с overridePendingTransitions(int, int).

Есть ли способ настроить пользовательские анимации с помощью SingleTask и ClearTask? Возможно ли достичь рабочего процесса действий, о котором я уже говорил, с пользовательскими анимациями?

+0

сделать BaseActivity, который продлевается на все виды деятельности и пусть он сделает обработку анимации для вас. –

+0

@ Dr.aNdRO и как это переопределит анимацию переключения активности по умолчанию для Android? – fex

ответ

1

Когда вы переходите от пользователя LoginActivty к MainActivity, вам просто нужно вызвать finish(); после вашего намерения навигационный код активности. Вы можете добавить анимацию активности в основной стиль темы.

В вашей основной теме приложения. Добавить следующее:

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:windowAnimationStyle">@style/OutdoorTheme.Window</item> 
</style> 

<style name="OutdoorTheme.Window" parent="@android:style/Animation.Activity"> 
    <item name="android:activityOpenEnterAnimation">@anim/abc_fade_in</item> 
    <item name="android:activityOpenExitAnimation">@anim/abc_fade_out</item> 
    <item name="android:activityCloseEnterAnimation">@anim/abc_fade_in</item> 
    <item name="android:activityCloseExitAnimation">@anim/abc_fade_out</item> 
</style> 

abc_fade_in.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/decelerate_interpolator" 
    android:fromAlpha="0.0" android:toAlpha="1.0" 
    android:duration="@android:integer/config_mediumAnimTime" /> 

abc_fade_out.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/decelerate_interpolator" 
    android:fromAlpha="1.0" android:toAlpha="0.0" 
    android:duration="@android:integer/config_mediumAnimTime" /> 
+0

собираюсь проверить это, спасибо;) – fex

+0

, к сожалению, не работает для SingleTask и ClearTask. Я не могу просто называть .Finish в случае MainActivity обратно в LoginActivity, потому что back stack может иметь другую активность, чем MainActivity. Выход из системы доступен из активности, которая запускается MainActivity (мне нужно очистить стопку). – fex

Смежные вопросы