Intereting Posts
Молчаливое автоматическое удаленное обновление приложений для Android? FATAL SIGNAL 11 (Sigsegv) при 0x00000000 (код = 1)? Android: Как получить идентификатор родительского представления? Установка плагина ADT для Eclipse Устройства Android / webOS поддерживают мультисайтовые события Javascript? Можно ли издеваться над курсором sqlite3 в Android, если нет db или таблицы? Как заблокировать диалог оповещения о закрытии кнопки «Назад» OnTouchEvent не работает над дочерними представлениями Установите Drawable или Bitmap как значок в уведомлении на Android Исключение FirebaseAuthInvalidCredentials при использовании «Одна учетная запись на адрес электронной почты» Как запустить приложение с помощью инструментов ADB для Android? Запрос оператора при нажатии кнопки «Назад» Изменение цвета текста TimePicker Gradle: Как запустить пользовательскую задачу после создания библиотеки Android? Андроидный заставка

Как создать экран заставки / Запуск экрана, который исчезает после загрузки приложения? (Реагировать родной)

Эй, мне было интересно, как решить запуск экрана, который, предположим, появится несколько секунд, а затем заменит другой вид. Я хотел бы использовать это, когда приложение запускается в первый раз и охватывает некоторые сети.

Solutions Collecting From Web of "Как создать экран заставки / Запуск экрана, который исчезает после загрузки приложения? (Реагировать родной)"

Вот как я решил «Экран загрузки». Я работал с компонентом Navigator. В моем index.android.js я устанавливаю initialRoute в свой класс SplashPage / SplashScreen, а затем там устанавливаю таймаут, который ссылается на «MainView», с которым вы хотите перейти через определенное время.

Мой навигатор в index.android.js:

<Navigator initialRoute={{id: 'SplashPage'}} renderScene={this.renderScene} configureScene={(route) => { if (route.sceneConfig) { return route.sceneConfig; } return Navigator.SceneConfigs.HorizontalSwipeJump; }} /> 

Мой начальный класс Route:

 class SplashPage extends Component { componentWillMount () { var navigator = this.props.navigator; setTimeout (() => { navigator.replace({ id: 'MainView', <-- This is the View you go to }); }, 2000); <-- Time until it jumps to "MainView" } render () { return ( <View style={{flex: 1, backgroundColor: 'red', alignItems: 'center', justifyContent: 'center'}}> <Image style={{position: 'absolute', left: 0, top: 0, width: windowSize.width, height: windowSize.height}} source={require('image!splash_screen')}></Image> </View> ); } } module.exports = SplashPage; 

РЕДАКТИРОВАТЬ

Может быть интереснее, потому что он «родной»;) https://github.com/crazycodeboy/react-native-splash-screen

Исправлена ​​проблема. Так что нужно сделать.

1) Сделать все это, но не создавать SplashActivity.

2) Все, что вам нужно сделать сейчас, – это установить тему MainActivity для SplashTheme.

Дело в том, что когда MainActivity загружает его, показывая его тему, но после того, как он заменит React-Native.

Мне удалось сделать это таким образом, который выглядит как самый простой и требует меньше ресурсов:

  1. Создайте образы всплесков для разных разрешений. Я использовал ионные ресурсы для создания всех размеров из файла PSD. Вам нужно создать временный ионный проект с ionic start , отредактировать файлы PSD внутри / ресурсы и запустить ionic resources .

  2. Поместите их в соответствующую папку в app / src / main / res / mipmap-xxx, с именем ic_splash.png

  3. Создайте приложение / src / main / res / drawable / splash.xml с этим контентом: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:gravity="center" android:src="@mipmap/ic_splash"/> </item> </layer-list> Примечание: Людям нужно добавить цвет ниже элемента растрового изображения, так что вы просто добавляете <item android:drawable="@android:color/black"/> перед вышеуказанным <item> . Цвет действительно не имеет значения, если у вашего изображения брызг нет прозрачности.

  4. Добавить в приложение / src / main / res / values ​​/ styles.xml: <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash</item> </style>
  5. Отредактируйте приложение / src / main / AndroidManifest.xml и включите внутри приложения> активность android:theme="@style/SplashTheme"
  6. Теперь приложение начнет с заставки в качестве фона, и как только приложение React Native загрузится, оно будет помещено поверх него. Основной компонент React Native должен иметь некоторый фон, чтобы покрыть всплеск.

Это правильный путь.

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