Как активировать темный режим в приложении React Native, когда тема Android установлена ​​в темный режим?

Я разрабатываю собственное приложение для реагирования, которое поддерживает темную тему.

Я использовал реагирующую навигацию и создал собственную тему, используя контекст React. Теперь я могу переключаться между темным и светлым режимами с помощью кнопки. Но я хочу использовать тему Android (например, темный режим) при открытии приложения. Это означает, что если в Android включен темный режим, мое приложение хочет, чтобы темный режим был включен при открытии приложения.

2 ответа

Решение

Вы можете использовать react-native-appearance:

import { AppearanceProvider, Appearance } from 'react-native-appearance';

export default () => (
  <AppearanceProvider>
    <App />
  </AppearanceProvider>
);

let colorScheme = Appearance.getColorScheme();

let subscription = Appearance.addChangeListener(({ colorScheme }) => {
  // do something with color scheme
});

Facebook все еще работает над добавлением поддержки внешнего вида:https://github.com/facebook/react-native/commit/63fa3f21c5ab308def450bffb22054241a8842ef

А пока я бы рекомендовал использовать что-то вроде: https://github.com/expo/react-native-appearance

Затем вы можете получить настройки внешнего вида устройства и загрузить соответствующие таблицы стилей, возможно, с запасным вариантом для не темного режима или устройств, не поддерживающих его.

Другие вопросы по тегам