Реагировать на собственный поток маршрутизатора - имитировать толчок Android

Можно ли в react-native-router-flux имитировать стандартный переход Android, когда панель навигации НЕ анимируется справа налево, когда новый экран добавляется в стек навигатора с помощью типа PUSH? Я не говорю об использовании типа REPLACE или RESET, поскольку они не позволяют вам вернуться к исходной сцене. Поведение, которое я хочу, заключается в том, что новый вид исчезает (что я могу сделать, установив реквизит animation), а панель навигации просто заменяется новой без какой-либо анимации - как это происходит с REPLACE и RESEST. Однако я не смог понять, как предотвратить анимацию справа налево при переходе PUSH.

Вот мой код:

<Scene
    key="gray"
    component={GrayScreen}
    title="Gray"
    animation={(Platform.OS === 'ios') ? '' : 'fade'}
    hideBackImage={!(Platform.OS === 'ios')}
 />

person brillajank    schedule 13.03.2017    source источник
comment
вы можете попробовать переопределить функцию animationStyle. animation нельзя установить на '', потому что fade — единственный доступный вариант   -  person Tobias Lins    schedule 13.03.2017
comment
@TobiasLins Я пытался переопределить animationStyle, и это не сработало - я думаю, потому что у меня нет такого опыта в этом. Я надеялся, что библиотека будет включать в себя простой способ сделать это, учитывая, как работает каждое коммерческое приложение для Android (т.е. без горизонтальной анимации на панели навигации). Я установил animation на '' для случая с iOS, и он его игнорирует, чего я и хочу.   -  person brillajank    schedule 13.03.2017


Ответы (1)


Вы должны использовать transitionConfig на экране

импортируйте StackViewStyleInterpolator и используйте его для изменения стиля экрана для Horizontal, forVertical, forFadeFromBottomAndroid, forFade

import StackViewStyleInterpolator from 'react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator';

<Scene 
   key="root"
   transitionConfig={() => ({ screenInterpolator: StackViewStyleInterpolator.forFadeFromBottomAndroid })}>
person Yasin Ugurlu    schedule 02.05.2019