如何使用 setLocalNightMode() 在每个活动中启用 MODE_NIGHT_YES?

2024-01-15

我最近想创建一个设置,在我的 Android 应用程序中启用夜间模式,我在互联网上搜索并找到了一个很好的解决方案,其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段...:

if(settingsSharedPreferences.getBoolean(getString(R.string.design_dark_design_key),false)) 
    {
        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    }

...为我的 MainActivity 启用深色模式(如果在我的应用程序设置中启用了该模式)。它工作得很好,并改变了我在“DarkMode”中的MainActivity!但是,如果我打开另一个活动,这不会像主活动那样以黑暗模式出现,但如果我将上面的代码行添加到这个新活动中,它也会以黑暗模式启动。所以我的问题是:

我是否必须在每个活动中调用此代码行,或者是否有办法为我的应用程序中的任何活动设置全局夜间模式?

UPDATE:

在 super.onCreate() 和 setContentView() 方法以及我的整个应用程序主题更改之前,我刚刚在新活动中调用了代码 baove。但如果我在 MainActivity 中调用它,我的 MainActivity 的主题就会改变......这真的很奇怪。 我可以在 MainActivity 中更改整个主题吗?

提前谢谢您!


好的,我找到了解决方案! 对于遇到同样问题的任何人,这是为整个应用程序应用深色设计的正确方法: 我从这个不错的网站得到的

https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/ https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/

这非常简单,您只需使用:

AppCompatDelegate.setDefaultNightMode(mode);

代替

getDelegate().setLocalNightMode(mode);

很简单,但是真的很有用!!!快乐编码。

抱歉我的英语不好,我是德国人:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 setLocalNightMode() 在每个活动中启用 MODE_NIGHT_YES? 的相关文章

随机推荐

  • Javascript旧语法到箭头函数的转换

    所以我想在没有 jquery 或其他库的情况下使用这个例子 我有这个代码 let xmlHttp new XMLHttpRequest xmlHttp onreadystatechange function 正如你所看到的 它使用旧的风格f
  • 在 R 中生成 DNA 密码子组合

    我在 R 中生成随机 DNA 序列 其中每个序列都有设定的长度 并包含用户指定的核苷酸分布 我想要做的是确保特定的核苷酸运行不会在给定的序列中生成 不允许的运行有 aga agg taa tag 和 tga 这是我的代码 它只是生成可能发生
  • jQuery 令人不快的 Draggable、Resizing 交互

    当我调整第一个 div 的大小时 它会导致下一个 div 在列中 向上 跳跃 重新创建 顶部 div 拖动调整大小手柄 jQuery function portlet draggable grid 25 25 resizable grid
  • 禁用字体连字 CSS(字母组合)

    现代浏览器会自动将一些字母 最常见的是 f 和 i 组合成一个称为连字的单个字符 这通常会优化易读性 即更容易阅读 但有时这可能不是设计师想要的 就我个人而言 我只在Chrome 版本53 0 2785 101 虽然我不能确定 但 我相信这
  • 关于 Android API 中的新方法和已弃用的方法

    我是安卓开发新手 我正在学习过时的书籍 所以我对新方法感到非常困惑 我将制作一个简单而轻便的应用程序 即使在旧设备上也可以运行 因此 当我创建一个新的android项目时 我将 Minimum required SDK 设置为API 8 T
  • 返回导出模块的最佳方法

    在我的学习之旅中 我开始研究 javaScript Node 的模块 让我困惑的是 当模块内完成功能的时间未知时 如何从模块返回信息 这将按预期返回 控制器 js const myModule require myModule var my
  • React中如何通过Key查找元素?

    ul li 1234 li li 5678 li li 9 li ul 如何通过Key查找元素并更改元素值 如addClass innerHtml 注意 在 Plain React 中 没有 Flux 或 Jsx 进入key已在 React
  • 为什么 groupby 和rolling 不能一起工作?

    我有一个从 coinmarketcap 中抓取的 df 我正在尝试计算 close price 列的波动率指标 但是当我使用 groupby 时 我收到一条错误消息 final coin data vol final coin data g
  • Doctrine2:[语义错误]如果不选择至少一个根实体别名,则无法通过标识变量选择实体

    这是我使用查询生成器进行的查询 它运行得很好 带来了用户表和模块表的所有结果 其中具有多对多关联 public function getUser id qb this gt getEm gt createQueryBuilder gt se
  • 具有引用完整性的 NoSQL/RDBMS 混合(删除级联)?

    是否有一种数据库可以为您带来引用完整性的优势并能够使用 SQL 类型语言进行查询 同时还可以松散地定义实体的数据属性以及它们之间的关系 例如 采用 RBAC 类型模型 其中有权限 用户 用户组和角色 复杂 灵活的模型可能具有以下规则 角色可
  • Python:如何创建一个要求准确字数的函数?

    这是我到目前为止所拥有的 import string 所以我让用户写一个 5 个单词的句子 只要求 5 个单词 def main sentence raw input Enter a 5 worded sentence if len wor
  • IIS 7.5 没有图像 css js 显示

    我有 2 台 Windows 2008 R2 x64 服务器 NLB ARR 具有共享配置 我的应用程序文件位于网络共享中 ASP net 页面 aspx 运行良好 但 css 图像 js 不起作用 我还有一个 htm 文件 可以很好地显示
  • 反编译Obj C框架

    我想反编译iOS Twitter 框架 如果事实上我从xcode 的模拟器中获取twitterd 文件 该文件已预编译为在x86 而不是ARM 上运行 至于我使用的工具http code google com p i386codedump
  • 需要快速读取 Android 传感器

    Issue 我正在开发一个应用程序 每 5 需要一个新的加速度数据 毫秒 我的方法 我创建了一个远程服务 只读取加速度 来自 SensorManager 的数据 我还将读取速率设置为 初始化时 延迟最快 传感器管理器 然后我也使用IPC进行
  • 如何在 Windows 7 64 位上安装 GitHub 时修复此错误

    http picsmashup com images jnasdh JPG http picsmashup com images jnasdh JPG 组件 Microsoft NET Framework 4 x86 和 x64 安装失败
  • Wix Burn 捆绑包 - 必须是管理员

    我创建了一个 WIX 刻录包 在捆绑包中 我安装了 Net 4 如果未安装 然后再安装 2 个 msi 文件 1 是第三部分 msi 另一个是我使用 WIX 为我的软件创建的 msi 我需要成为计算机上的管理员才能运行这些 msi 文件 如
  • OpenCV 中组合仿射变换的内置函数?

    Opencv中有没有结合仿射变换的内置函数 我也可以自己编写它 但如果可能的话我会坚持使用库函数 Cheers 现在我这样做 我分配 a1 a2 r 矩阵 所有 3x3 眼睛 我用变换矩阵 a1aff a2aff 替换前两个矩阵的顶部部分
  • parseInt 与 unary plus,何时使用哪个?

    这条线有什么区别 var a parseInt 1 10 a 1 和这条线 var a 1 a 1 This jsperf测试 http jsperf com parseint vs unary operator表明一元运算符在当前的 ch
  • 追加到Python字典中的列表[重复]

    这个问题在这里已经有答案了 有没有更优雅的方式来编写这段代码 我在做什么 我有钥匙和日期 可以有多个日期分配给一个键 因此我正在创建一个日期列表字典来表示它 下面的代码工作正常 但我希望有一个更优雅和 Pythonic 的方法 dates
  • 如何使用 setLocalNightMode() 在每个活动中启用 MODE_NIGHT_YES?

    我最近想创建一个设置 在我的 Android 应用程序中启用夜间模式 我在互联网上搜索并找到了一个很好的解决方案 其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段 if settingsShare