react-native: Problem when trying to disable dark mode on Android.

Hello people, I’m learning react / react native and along, making an app to practice. What is happening is that when the device’s darkmode is active it implies the colors chosen in the application (an example below). I do not intend to invest time in and do darkmode now, I would like to learn more about React, make the whole app, and then go to the more “superficial” parts and make darkmode within the config of the app itself.

Would it be possible to inhibit / prevent the device’s Dark Mode from interfering with the colors of the app?

It’s done with my app design 😥

I’m testing the app on a Xiaomi Mi 9T Pro, I also tested it on the S10 + and it didn’t happen, it seems that MiUI forces DarkMode … Thank you.

React Native version:

“react”: “16.11.0”, “react-native”: “0.62.2”,

Possible solutions that I was unable to make work.

I found the following code below talking to put in the onCreate method of MainActivity.java, however it does not have this method there. I don’t know where and how I can do it. AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

107943046_3977108782364325_148255309064123217_n

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 15
  • Comments: 22 (1 by maintainers)

Most upvoted comments

Dear @RBalconi, the exact solution to turn off the force dark mode on Android is this Stack Overflow post.

@RigottiG @joan2404 @ff-joaquin-rojas @eliasjnior @inferusvv

Dear @RBalconi, the exact solution to turn off the force dark mode on Android is this Stack Overflow post.

@RigottiG @joan2404 @ff-joaquin-rojas @eliasjnior @inferusvv

I don’t know who you are or where you came from, but thank you, it works like a charm! You deserve all the best!

@ff-joaquin-rojas, I’m Amer known as amerllica come from Iran, and actually, it is my pleasure, thank you ❤️ 🌹

Hey guys! I’ve found a solution to force the app to stay in Light-theme you just need to follow this steps.

For Android: Go to android/app/src/main/res/values/styles.xml and add the following line:

<item name="android:forceDarkAllowed">false</item>

The file will look like this:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textColor">#000000</item>
        <item name="android:forceDarkAllowed">false</item>
    </style>
</resources>

For iOS: Go to the Info.plist and add the following code:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

That’s all, don’t forget to delete previous builds. I hope this works for you! Cheers.

Caro @RBalconi , a solução exata para desligar o modo escuro forçado no Android é esta postagem do Stack Overflow .

@RigottiG @ joan2404 @ ff-joaquin-rojas @eliasjnior @inferusvv

This does not work for the Xiaomi Mi 9T Pro

I use expo-splash-screen and fix work only if I add it in two places. Without second line fix does’n work for me. image

Dear @RBalconi, the exact solution to turn off the force dark mode on Android is this Stack Overflow post.

@RigottiG @joan2404 @ff-joaquin-rojas @eliasjnior @inferusvv

Tnx it’s worked:)

Same problem here… Same React and RN version. Added AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);to onCreate() method on MainApplication.java and on Xiaomi the background color changes, which is very bad for the app as it relies on a pure white background. On other devices it works ok. Any clue to a fix?

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:forceDarkAllowed">false</item>
    <item name="android:textColor">#000000</item>
</style>
<style name="SplashScreenTheme" parent="SplashScreen_SplashTheme">
    <item name="colorPrimaryDark">@color/status_bar_color</item>
</style>
</resources>

It work for me

The solution works for other devices, on Xiaomi case, do not works for TextView or or TextHint from native android layout side, soon as I find a solution I’ll post it here

@ff-joaquin-rojas You’re right, it could have been a temporary error of the device. I installed a new build with the latest react native and it worked fine, but after a reboot of the device the problem appeared again. However in my case the probem is with the background, it’s pure white and it changes the color to black. Problem not fixed yet.

@joan2404 Tried that. It didn’t work for me. Checked the changelog and saw there was nothing specific to dark mode on Xiaomi devices. What I have noticed is that it only affects icons and svgs.

I also have the same problem. I’m running with Expo, also with Xiaomi devices something overrides my styles with Styled Components. Even the splash screen, that’s an white SVG, is replaced by a black SVG.

MainApplication have onCreate method. But nothing changes. App still changes colors