Переключение изображений в темный режим с трепетанием

Хотелось бы узнать, как реализовать переключение изображения на темный режим и светлый режим. У меня нет изображения, чтобы включить приложение. Просто включите темный режим в настройках iOS или Android.

Вот пример кода для светового режима. Я хочу знать, как изменить или добавить коды для переключения logo.png на darkmode_logo.png.

* darkmode_logo.png - логотип в темном режиме.

V/r,

import 'package:flutter/material.dart';

class TopPage extends StatefulWidget {
  const TopPage({Key key}) : super(key: key);

  @override
  _TopPageState createState() => _TopPageState();
}

class _TopPageState extends State<TopPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Theme.of(context).backgroundColor,
      drawer: SlideMenu(),
      appBar: AppBar(
        centerTitle: true,
        title: Image.asset(
          'assets/images/header_icn/logo.png',
          fit: BoxFit.cover,
        ),
      ),
      body: Container(),
    );
  }
}

person Masaya Stripes    schedule 01.06.2021    source источник


Ответы (1)


Проверьте режим темы, используя свойство Brightness темы.

final isDarkMode = Theme.of(context).brightness == Brightness.dark;

Затем измените изображение с помощью isDarkMode.

Image.asset(
  isDarkMode
      ? 'assets/images/header_icn/darkmode_logo.png'
      : 'assets/images/header_icn/logo.png',
  fit: BoxFit.cover,
)
person NirmalCode    schedule 01.06.2021
comment
Он всегда говорит «ложь», даже если я изменил тему на ТЕМНУЮ в настройках экрана в эмуляторе. - person Chirag Bargoojar; 01.06.2021
comment
Тема эмулятора не меняется на темную, как должна. Попробуйте в реальном устройстве. - person NirmalCode; 01.06.2021