React-native / Splash-Screen появляются при отображении клавиатуры - PullRequest
0 голосов
/ 25 февраля 2019

Я добавил заставку в свой собственный проект, все работает нормально, за исключением того, что когда я открываю клавиатуру, на короткое время показывается заставка.Видео: https://drive.google.com/open?id=14ahrc-dyYnNEYAAX3iMQVwqqV6fVo_xG

Для воспроизведения

создайте файл background_splash.xml, который можно рисовать с таким кодом:

 <?xml version="1.0" encoding="utf-8" ?>

<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary"/>
</layer-list>

Затем добавьте его в файл styles.xml

<item name="android:windowBackground">
     @drawable/background_splash
</item>

Ожидаемое поведение

При появлении клавиатуры экран-заставка не должен отображаться.

Пример кода

Все находится на вкладке «Воспроизвести»,вам просто нужно добавить TextInput для его отображения.

Среда

Реагировать Информация о собственном окружении: Система: ОС: Windows 10 CPU: (4) x64 Intel (R) Xeon (R)CPU E5-1603 v4 @ 2,80 ГГц Память: 9,57 ГБ / 15,92 ГБ Двоичные файлы: npm: 6.4.1 - C: \ Program Files \ nodejs \ npm.CMD

1 Ответ

0 голосов
/ 21 августа 2019

У меня была та же проблема с моим приложением, вот мой обходной путь.Сначала вы должны установить модуль реагировать-родной-цвет-фона , который позволяет вам установить цвет фона вашей корневой операции.

После вызова метода setColor в вашем приложении.Пример jsx (с коротким таймаутом, чтобы избежать «вспышки» сразу после заставки):

export default function App(): Element {
    useEffect(() => {
        if (Platform.OS === "android") {
            setTimeout(() => {
                BackgroundColor.setColor("#FFFFFF");
            }, 500);
        }
    }, []);
    return <AppContainer />;
}

Надеюсь, это поможет!

Редактировать: улучшить код с помощью Platform.OSтест.

...