Эффекты появления активити

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Эффекты появления активити

Сообщение andev » 21 мар 2012, 20:58

У меня стоит идиотская задача эмулирования табов, абсолютно не свойственных для Android OS
Три активити, на нижней панели у каждой из них соответственно три кнопки, которые их переключают между собой.
Предвижу советы использовать TabWidget - мне он не подходит по ряду причин, если интересно кому - расскажу по каким.
Нашел выход из положения, сверстав нижнюю часть в отдельном xml, подключая его includ'ом, а при нажатии на эти кнопки переключения текущая активити finish() и новая, на которую нажали, вызывается Intentom. Все работает, но проблема в том, что при процессе перехода с одной активити на другую та, с которой уходим (finish()) мгновенно слайдится влево экрана, а новая, которую стартуем, "приезжает" из правой части. Так что эффект переключения закладок присутствует, но эти слайды его портят.
Вопрос - можно ли задать эффект появления/исчезновения активити, что бы просто в один момент исчезала одна и появлялась другая, без эффектов? Я так делал в блэкбэрри, там даже изначально так сделано, а эффекты переходов надо самому "навешивать". Вот сейчас мне понадобилась обратная задача - избавиться от этих эффектов.
Ну, как вариант, можете подсказать другую реализацию табов, но, повторюсь, не при помощи TabWidget'а

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Эффекты появления активити

Сообщение andev » 23 мар 2012, 09:07

Отключил :)
Первый способ заключается в установке флага FLAG_ACTIVITY_NO_ANIMATION

Код: Выделить всё

	private void goToSecondActivity() {
		Intent intent = new Intent(this, ActivitySecond.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
		startActivity(intent);
	}
Срабатывает, однако, если первая активити будет финишировать (finish()), как в моем случае, анимация все равно будет появляться
Второй способ сработал на 100%
1) Создаем в values style.xml
2) создаем в нем тему без анимации

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<resources>
             
        <style name="ThemeWithoutAnimation" parent="android:Theme"> 
         <item name="android:windowBackground">@null</item> 
         <item name="android:windowNoTitle">true</item> 
         <item name="android:windowAnimationStyle">@style/NoAnimationBetweenActivities</item> 

    </style>
    
    <style name="NoAnimationBetweenActivities" 
 parent="android:Animation.Activity"> 

        <item name="android:activityOpenEnterAnimation">@null</item> 
        <item name="android:activityOpenExitAnimation">@null</item> 
        <item name="android:activityCloseEnterAnimation">@null</item> 
        <item name="android:activityCloseExitAnimation">@null</item> 
        <item name="android:taskOpenEnterAnimation">@null</item> 
        <item name="android:taskOpenExitAnimation">@null</item> 
        <item name="android:taskCloseEnterAnimation">@null</item> 
        <item name="android:taskCloseExitAnimation">@null</item> 
        <item name="android:taskToFrontEnterAnimation">@null</item> 
        <item name="android:taskToFrontExitAnimation">@null</item> 
        <item name="android:taskToBackEnterAnimation">@null</item> 
        <item name="android:taskToBackExitAnimation">@null</item> 
     </style>
    
</resources>
3) задаем в манифесте для нужных активити эту тему

Код: Выделить всё

<activity
            android:name="ActivitySecond" 
            android:theme="@style/ThemeWithoutAnimation" >
</activity>
4) profit :)

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Эффекты появления активити

Сообщение KamiSempai » 23 мар 2012, 11:42

Всегда уважал людей, которые отписываются по решению проблемы если сами нашли выход, а не ограничиваются простым "Тема закрыта, я сам все сделал." :)
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Эффекты появления активити

Сообщение damager82 » 26 мар 2012, 09:32

KamiSempai писал(а):Всегда уважал людей, которые отписываются по решению проблемы если сами нашли выход, а не ограничиваются простым "Тема закрыта, я сам все сделал." :)
Аналогично )
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
goodroot
Сообщения: 13
Зарегистрирован: 05 май 2012, 10:42
Откуда: Бобруйск

Re: Эффекты появления активити

Сообщение goodroot » 21 июн 2012, 21:59

Вот еще решение. Описано в подробностях. Читайте на здоровье.
http://andreylunevich.blogspot.com/2012/03/android.html

Ответить