Цвет фона перехода в React Navigation

При переходе с одного экрана на другой (с использованием карточного или модального режима) появляется белый фон, который меняет альфа-канал с 0 o 1 во время экрана на анимацию экрана.

Я хотел бы знать, как изменить цвет, если это возможно.

enter image description here


Среда

  • React Native Navigation версия: 1.0.0-бета .11
  • React Родная версия: 0.45.1
  • Платформа: iOS и Android
  • Устройство: iOS 10.3, iPhone 6

Некоторый код, который я использую для создания StackNavigation

Примечание. Модальный цвет фона был решен с помощью ответа @Jason Gaare qaru.site/info/505244/..., теперь проблема сохраняется в StackNavigation.

let navOptions = {
    headerMode: 'screen',
    navigationOptions: ({navigation}) => ({
        headerTintColor: '#fff',
        headerStyle: {
            backgroundColor: '#1A1A1A',
        },
        headerTitleStyle: {
            color: '#fff',
            fontFamily: 'my-font'
        },
        headerLeft: (<ImageBtn
                        buttonStyle={{ .. }}
                        buttonHighlightStyle={{}}
                        source={ myImage }
                        imageStyle={{ ... }}
                        callback={navigation.goBack.bind(this, null)} />)
    })
};

const MyTab = StackNavigator({
    MyScreen1: {screen: MyScreen1},
    MyScreen2: {screen: MyScreen2},
    MyScreen3: {screen: MyScreen3},
    MyScreen4: {screen: MyScreen4},
}, navOptions);

Ответ 1

Проблема, о которой вы говорите (# 563), была закрыта в апреле 2015 года, обновив цвет перехода по умолчанию от #555555 до прозрачного. Цвет перехода может быть применен путем установки стиля фона в навигаторе следующим образом:

<Navigator
  style={{flex: 1}} // style for the navigator container
  transitionerStyle={{backgroundColor: 'black'}} // style applied to the scenes container
 ...

Это неудивительно, что вы не знали об этом исправлении; кто-то ( "alvaromb" ) прокомментировал фиксированную проблему через год, в мае 2016 года, отметив: "Разве это не должно быть документировано?" поэтому, очевидно, пользователи не знают об этом.

По-видимому, аналогичная проблема с фоновым цветом (и другие проблемы) была исправлена ​​в версии 4 react-native-router-flux (выпущена 8 июля 2017 года), предположительно по тому же/аналогичному обновлению кода.

Ответ 2

Я решил эту проблему, добавив это в мой StackNavigator:

cardStyle: {
  backgroundColor: 'rgba(0,0,0,0)',
  opacity: 1,
},

Теперь переход полностью прозрачен. Я использую "react-navigation": "^1.5.11".

Ответ 3

Посмотрите AppDelegate.m:

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                  moduleName:@"Example"
                                           initialProperties:nil
                                               launchOptions:launchOptions];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

Попробуйте изменить backgroundColor на rootview! Это может помочь вам в достижении вашей цели.