首页 > 解决方案 > 使用颤动在暗模式下切换图像

问题描述

我想知道如何在暗模式和亮模式下实现切换图像。我不打算在应用程序上进行切换。只需在 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(),
    );
  }
}

标签: flutterdartdarkmode

解决方案


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,
)

推荐阅读