kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Анонимный пользователь
Вопрос

Как отменить анимацию фрагментов в BackStack?

Я думал, что система будет обращать анимацию на бэкстейдже при нажатии кнопки "назад" при использовании фрагментов с помощью следующего кода:

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);
ft.replace(R.id.viewContainer, new class(), "layout").addToBackStack(null).commit();
112 2012-06-04T18:56:35+00:00 6
Программирование
android
android-fragments
back-stack
android-animation
Решение / Ответ
Анонимный пользователь
4-го июня 2012 в 6:56
2012-06-04T18:56:36+00:00
Дополнительно
Источник
Редактировать
#16353197

Согласно документации android по пользовательской анимации:

Изменить:

ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);

To:

ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out, R.anim.hyperspace_in, R.anim.slide_out );

и теперь задний стек анимируется - В обратном направлении!!!

261
0
 Aniket
Aniket
12-го октября 2015 в 7:54
2015-10-12T07:54:49+00:00
Дополнительно
Источник
Редактировать
#16353198

Используйте правильную анимацию Я использовал следующее, и он работает как шарм

slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_mediumAnimTime" >
    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="1000"
        android:valueTo="0"
        android:valueType="floatType" />
</set>

slide_in_right.xml

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_mediumAnimTime" >

    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="0"
        android:valueTo="1000"
        android:valueType="floatType" />

</set>

slide_out_left.xml

   <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_mediumAnimTime" >

    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="0"
        android:valueTo="-1000"
        android:valueType="floatType" />

</set>

slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_mediumAnimTime" >

    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="-1000"
        android:valueTo="0"
        android:valueType="floatType" />

</set>

Затем используйте следующее при добавлении фрагмента

setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left,
                                R.anim.slide_out_right, R.anim.slide_in_right)

и все будет работать на 100%

23
0
Hoang  Nguyen Huu
Hoang Nguyen Huu
11-го августа 2017 в 4:08
2017-08-11T04:08:03+00:00
Дополнительно
Источник
Редактировать
#16353200

в моем случае

ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, 
                       R.anim.slide_in_right, R.anim.slide_out_left);

создаст прекрасную анимацию.

slide_in_right

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="50%p" android:toXDelta="0"
               android:duration="@android:integer/config_mediumAnimTime"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
           android:duration="@android:integer/config_mediumAnimTime" />
</set>

slide_out_left

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-50%p"
               android:duration="@android:integer/config_mediumAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
           android:duration="@android:integer/config_mediumAnimTime" />
</set>
11
0
 TarikW
TarikW
14-го апреля 2016 в 7:47
2016-04-14T07:47:00+00:00
Дополнительно
Источник
Редактировать
#16353199
.setCustomAnimations(R.animator.fragment_fade_in,
        R.animator.fragment_fade_out,
        R.animator.fragment_fade_p_in,
        R.animator.fragment_fade_p_out)

Замените вышеуказанное на:

mFragmentManager.beginTransaction()
    .setCustomAnimations(R.animator.fragment_fade_in,
            R.animator.fragment_fade_out,
            R.animator.fragment_fade_p_in,
            R.animator.fragment_fade_p_out)
    .replace(R.id.main_container, FragmentPlayerInfo.getInstance(data))
    .addToBackStack(FragmentPlayerInfo.TAG)
    .commit();
 Wtower
Wtower
Редактировал ответ 14-го апреля 2016 в 8:06
3
0
 MODERN
MODERN
12-го марта 2019 в 11:25
2019-03-12T23:25:22+00:00
Дополнительно
Источник
Редактировать
#16353201

эта работа для меня!! этот код для фрагмент! если вы хотите использовать этот код в активности, удалить в getActivity начало ()!!

getActivity().getSupportFragmentManager()
        .beginTransaction()
        .setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.fade_out,android.R.anim.slide_in_left, android.R.anim.fade_out)
        .replace(R.id.fragment_container, new YourFragment)
        .addToBackStack(null)
        .commit();

Удачи вам!!

0
0
Islam Alshnawey
Islam Alshnawey
16-го сентября 2019 в 10:58
2019-09-16T10:58:34+00:00
Дополнительно
Источник
Редактировать
#16353203

Это как говорилось в классе фрагмента транзакции .

/**
     * Set specific animation resources to run for the fragments that are
     * entering and exiting in this transaction. The <code>popEnter</code>
     * and <code>popExit</code> animations will be played for enter/exit
     * operations specifically when popping the back stack.
     *
     * @param enter An animation or animator resource ID used for the enter animation on the
     *              view of the fragment being added or attached.
     * @param exit An animation or animator resource ID used for the exit animation on the
     *             view of the fragment being removed or detached.
     * @param popEnter An animation or animator resource ID used for the enter animation on the
     *                 view of the fragment being readded or reattached caused by
     *                 {@link FragmentManager#popBackStack()} or similar methods.
     * @param popExit An animation or animator resource ID used for the enter animation on the
     *                view of the fragment being removed or detached caused by
     *                {@link FragmentManager#popBackStack()} or similar methods.
     */
    @NonNull
    public abstract FragmentTransaction setCustomAnimations(@AnimatorRes @AnimRes int enter,
            @AnimatorRes @AnimRes int exit, @AnimatorRes @AnimRes int popEnter,
            @AnimatorRes @AnimRes int popExit);

так, Наконец, вы можете использовать метод, как это

 mFragmentManager.beginTransaction()
                        .replace(R.id.container, fragment)
                        .setCustomAnimations(R.anim.slide_left,//enter
                                             R.anim.slide_out_left,//exit
                                             R.anim.slide_right,//popEnter
                                             R.anim.slide_out_right)//popExit
                        .addToBackStack(fragment.toString())
                        .commit();
0
0
Похожие сообщества 18
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
19 732 пользователей
Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. Размещение бесплатное. 📌 ВАЖНО: Правила публикации и правила канала: 📌 Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-12-10
Открыть telegram
StartAndroid Ru Chat
StartAndroid Ru Chat
2 849 пользователей
Android чат сайта startandroid.ru Канал - @startandroid
Открыть telegram
Android Architecture
Android Architecture
2 750 пользователей
Русскоязычный чат для обсуждения архитектуры Android приложений. У нас атмосфера взаимопомощи и уважения друг к другу! Общий чат по Android: @android_ru Чат для вакансий: @mobile_jobs Подробнее: https://telegra.ph/Android-Architecture-06-02
Открыть telegram
Android Declarative
Android Declarative
1 780 пользователей
Чат русскоязычного android-сообщества, посвященный декларативным UI-фреймворкам: Jetpack Compose, Anko, Anvil, Litho, Splitties за оффтопик пожизненная ссылка в @android_ru @jetpack_compose - новости https://bit.ly/32pRDWm - примеры компонентов
Открыть telegram
AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
1 684 пользователей
Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно 1раз в 2 недели ставьте в тексте тег #vacancy. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov Флудить тут @pogromista
Открыть telegram
Android ROM Development
Android ROM Development
1 649 пользователей
Discussion about Android ROM development and testing. App development group: 🖥 https://t.me/joinchat/CiGS0z9LkBPQ_8gjz3eAdA
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 6 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией