2016-01-27 26 views
13

Jak ustawić ekran powitalny dla natywnego Androida, nie mogę znaleźć niczego na ten temat i myślałem, że to dziwne.Jak ustawić ekran powitalny dla reagującego natywnego Androida?

Dzięki

+0

Oto odpowiedź na swoje pytanie http://stackoverflow.com/a/39298315/277345 –

+1

Możliwy duplikat [Jak utworzyć ekran powitalny/Uruchamianie, który znika po załadowaniu aplikacji? (React Native)] (http://stackoverflow.com/questions/33390013/how-to-create-some-ind-of-splash-screen-launching-screen-which-dappapp-afte) –

Odpowiedz

20

Próbowałem 3 z następujących sposobów. Pierwszym z nich jest to, czego aktualnie używam na ekran powitalny dla Androida, aby reagować na natywne projekty.

  1. Używanie pakietu npm napisanego przez innego.

    referencyjny: https://github.com/remobile/react-native-splashscreen

  2. Utwórz komponent SplashScreen i przekierować później.

    referencyjny: How to create some kind of Splash screen/Launching screen, which disappears after App loaded? (React Native)

  3. Natywnie w kodzie java.

    referencyjny: https://www.bignerdranch.com/blog/splash-screens-the-right-way/

Mam fetch żądanie w componentDidMount() z initialRoute.

Pierwsza metoda z powyższej listy wykonuje żądanie, wyświetlając ekran powitalny.

Podczas drugiej drogi należy odczekać, aż komponent SplashScreen zostanie odłączony.

Trzeci sposób to nieco więcej kodów do pisania i utrzymywania.

+1

Jak dodać wideo Ekran powitalny w systemie Android – Lavaraju

1

Ten poradnik tutaj działa świetnie:

https://medium.com/react-native-development/change-splash-screen-in-react-native-android-app-74e6622d699

  1. Musisz utworzyć ekran powitalny w RES/rozciągliwej. Nazwijmy to splash_screen.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    
        <item 
         android:drawable="@android:color/white"/> 
    
        <item> 
         <bitmap 
          android:gravity="center" 
          android:src="@mipmap/ic_launcher"/> 
        </item> 
    
    </layer-list> 
    
  2. Teraz trzeba zaktualizować RES/wartości/styles.xml

    <resources> 
    
        <!-- Base application theme. --> 
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
         <!-- Customize your theme here. --> 
        </style> 
    
    <style name="SplashTheme" parent="AppTheme"> 
         <item name="android:windowBackground">@drawable/splash_screen</item> 
        </style> 
    
    </resources> 
    
  3. teraz otwarty AndroidManifest.xml i zastąpić AppTheme z SplashTheme w główną działalność

    <activity 
         android:name=".MainActivity" 
         android:label="@string/app_name" 
         android:theme="@style/SplashTheme" 
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> 
         <intent-filter> 
          <action android:name="android.intent.action.MAIN" /> 
          <category android:name="android.intent.category.LAUNCHER" /> 
         </intent-filter> 
    </activity> 
    

    Używamy SplashTheme zamiast aktualizować AppTheme, aby dodać to tło tylko aby rozpocząć aktywność i pozostawić inne f bez zmian.

  4. Nie zapomnij ustawić tła dla widoku głównego. Ta potrzeba, ponieważ ekran powitalny jest zawsze pod twoimi widokami js. Więc jeśli nie ustawić tła, będzie to widoczne.

0

Próbowałeś użyć this? Natknąłem się na to kilka dni temu.Działa dobrze na iOS, ale nie testowałem go jeszcze na Androida. Powinieneś mieć węzeł> = 6 i zainstalować imageMagic. (Dla Mac: brew install imagemagic)

npm install -g yo generator-rn-toolbox 
yo rn-toolbox:assets --splash IMGAE --android 
Powiązane problemy