4

React Native Override User Interface Style

 2 years ago
source link: https://reactnativeexample.com/react-native-override-user-interface-style/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

react-native-override-user-interface-style

Installation

# Install & setup module
$ npm install react-native-override-user-interface-style --save
# --- or ---
$ yarn add react-native-override-user-interface-styl

# If you're developing your app using iOS, don't forget to run this command
$ cd ios/ && pod install

Manual linking (only if needed)

Manually link the library on iOS

Manually link the library on android

Setup

  1. Add AppGroup to your info.plist:
<key>AppGroup</key>
<string>your.group.name</string>
  1. Update AppDelegate.m with the following additions:
#import "AppDelegate.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import "RNUserInterfaceStyle.h" // <- add the header import

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ...other code

    [RNUserInterfaceStyle initSystemTheme];  // <- initialization system theme

    return YES;
}
@end

android

  1. Update MainActivity.java with the following additions:
import com.humanscape.rarenote.RNUserInterfaceStyle.RNUserInterfaceStyleManager; // <- add this necessary import

public class MainActivity extends ReactActivity {
  @Override
    protected void onCreate(Bundle savedInstanceState) {
      RNUserInterfaceStyleManager.initSystemTheme(getApplicationContext(), "your preference name"); // <- initialization system theme
      super.onCreate(savedInstanceState);
    }
}

Usage

import RNUserInterfaceStyle from 'react-native-override-user-interface-style';

// or ES6+ destructured imports

import { getTheme, setTheme } from 'react-native-override-user-interface-style';

Properties

  • theme (String)
    • default – follows system appearance
    • light – light mode
    • dark – dark mode
function getTheme():Promise<Theme | null>; // Gets saved theme type;
function setTheme(theme:Theme): void; // Set theme type

GitHub

View Github


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK