React Native启动启动窗口启动屏幕背景不工作Android 12

wn9m85ua  于 2022-11-20  发布在  Android
关注(0)|答案(2)|浏览(137)

在这个问题上花了几天时间之后,我请求你的帮助。我升级了我的项目到react-native 0.69.5,和react-native-bootsplash 4.3.2。
我尝试使用图标和背景颜色自定义启动屏幕,但只显示了图标。
下面是我的styles.xml文件:

<resources>
  <!-- Base application theme. -->
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@color/green</item>
    <item name="android:forceDarkAllowed">false</item>
    <item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
  </style>

  <!-- BootTheme should inherit from Theme.SplashScreen -->
  <style name="BootTheme" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">@color/green</item>
    <item name="windowSplashScreenAnimatedIcon">@mipmap/bootsplash_logo</item>
    <item name="postSplashScreenTheme">@style/AppTheme</item>
  </style>
</resources>

我的colors.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="green">#08ba58</color>
    <color name="black">#000000</color>
    <color name="dark_green">#08776c</color>
</resources>

还有我的AndroidManifest.xml文件:

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.****.****">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.CAMERA"/>

    <application
        android:name=".MainApplication"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:allowBackup="false"
        android:theme="@style/BootTheme"
        android:networkSecurityConfig="@xml/network_security_config">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
            android:launchMode="singleTask"
            android:windowSoftInputMode="adjustResize"
            android:exported="true"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/app_scheme"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https"
                        android:host="****.****/****"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https"
                        android:host="****.****/****"/>
            </intent-filter>
        </activity>
        <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_geo_api_key"/>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
        <meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
        <meta-data
            android:name="com.google.firebase.messaging.default_notification_icon"
            android:resource="@drawable/ic_stat_ic_notification" />
        <meta-data
            android:name="com.google.firebase.messaging.default_notification_color"
            android:resource="@color/black"
            tools:replace="android:resource" />
        <meta-data
            android:name="com.google.android.gms.wallet.api.enabled"
            android:value="true" />
    </application>
</manifest>

然后我在www.example.com中实现了onCreate函数MainActivity.java如下所示:

@Override
  protected void onCreate(Bundle savedInstanceState) {
    RNBootSplash.init(this);
    super.onCreate(null);
  }

结果如下:

但预期的结果会是这样的(不是真实的的颜色,也不是真正的图标,但你得到了这个想法):

你知道为什么它不工作吗?
非常感谢!

col17t5w

col17t5w1#

您是否尝试在此命令中输入您想要的颜色,以生成闪屏

yarn react-native generate-bootsplash assets/bootsplash_logo_original.png 
  --background-color=F5FCFF \
  --logo-width=100 \
ruarlubt

ruarlubt2#

如果黑暗模式让您感到困扰,那么您可能需要在styles.xml中进行一些更改(仅供参考,目录为:安卓系统/应用程序/源代码/主/资源/值/样式.xml)
在我的情况下,我添加了
<item name="android:forceDarkAllowed">false</item>
在“应用程序主题”风格。希望这给你的问题的愿景。
另外,我发现在某些情况下,你可能要把风格父代改成:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

相关问题