【问题标题】:Changing to dark mode in android isn't very smooth在android中更改为暗模式不是很顺利
【发布时间】:2022-03-29 22:54:29
【问题描述】:

我正在为我的应用程序使用材质组件 DayNight 主题。我想在运行时打开/关闭暗模式。我正在使用以下方法来更改应用程序的主题:

AppCompatDelegate.setDefaultNightMode();

问题在于它重新创建了不太流畅的活动。它在更改应用程序主题之前显示黑屏。

有什么方法可以让这个看起来平滑吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    在调用 super.create() 方法之前将主题设置为深色模式,因此在用户可见活动之前,它的主题将首先更改。

     protected void onCreate(Bundle savedInstanceState) {
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    }
    

    希望这会有所帮助。

    【讨论】:

    • 我在应用程序类中设置暗模式。还调用 setDetaultNightMode 应该重新创建活动,这对我来说没有发生。
    • 感谢您的回答。虽然这只发生在模拟器中。在设备中运行顺畅。
    【解决方案2】:

    您可以在 Activity 中尝试:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES
    }
    

    再次删除:

    delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
    

    【讨论】:

      猜你喜欢
      • 2023-01-14
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      相关资源
      最近更新 更多