当前位置: 首页 > 知识库问答 >
问题:

用颤振切换暗模式下的图像

郜驰
2023-03-14

我想知道如何实现在暗模式和光模式下切换图像。我不想把切换应用程序。只需在iOS或Android中切换设置上的黑暗模式。

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(),
    );
  }
}

共有1个答案

孙洋
2023-03-14

使用主题的亮度属性检查主题模式。

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,
)
 类似资料:
  • 目前我正在尝试颤振网页,我需要在颤振主频道工作。但是,后来我需要继续我的其他项目。在他们身上,我正在研究颤振稳定通道。 但是,每当我使用命令“flutter channel stable”或“fluter channel master”切换我的flutter通道时,它每次都会重新下载sdk和其他工具。 目前,我已经下载了稳定的颤振sdk和稳定的dart sdk。 我已将它们移动到“FlutterS

  • 我想创建一个flutter应用程序,它有2个明暗模式主题,通过应用程序内的开关进行更改,默认主题是默认的android主题。 我需要将一些自定义颜色传递给其他小部件,我不想只是配置材料主题。 如何检测用户设备默认主题 第二个问题是如何为整个应用程序提供主题 第三个问题是如何通过运行时间的简单切换来改变主题

  • 从Android10开始,你可以在黑暗模式和默认灯光模式之间切换。我还没有做任何更深入的研究,因为这是一个新的话题。暗模式的颜色切换是由操作系统自动的,还是有任何方法告诉我的应用程序切换不同的应用程序主题,如果暗模式是打开的?此外,黑暗模式也可能出现在一些Android 9设备上。 因为我使用自定义参数创建了自定义深色主题,并在资源中为每种颜色设置了深色(在中使用自定义属性,并在的主题中为它们应用

  • 在我的主要活动中,我附加了两个片段并使用tablayout。每当我把光变暗或者把暗变亮,我都会得到这个错误,在这里输入图像描述 错误显示在super的onCreate()中。onCreate(savedInstanceState)main活动。

  • 我对flutter非常陌生,我正在做一个有趣的应用程序。我想添加一个背景图像到我的应用程序,但我找不到如何。我知道我必须把它放在中,但我找不到怎么放。这是我的代码:

  • 所以,我正在使用flutter版本2.2.3,现在无法升级。但是,我的另一个项目需要更高的SDK。我知道,有FVM。但我发现了一个问题:如何在同一设备上为不同的项目使用两个版本的flutter?并引用文章:https://dartcode.org/docs/quickly-switching-between-sdk-versions/ 有什么建议吗?