更新夜间模式小部件

3
我在安卓上创建了一个简单的便签小部件。我在其中添加了夜间模式功能,使小部件颜色在白天从红色变为黑色。我使用以下代码实现根据时间更改小部件的功能:
    // Find Night Mode Automatically//
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);

    // Checks Whether app Is In Night Mode Or Not//
    int currentNightMode = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;

    // Checks All Scenarios//
    switch (currentNightMode) {

        // Night Mode Is Not Active, We're In Day Time//
        case Configuration.UI_MODE_NIGHT_NO: {

            // Instantiate Variable RemoteViews remoteViews / Directs Activity To GUI//
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_ui);

            // Initiate viewText Method//
            viewText(context, remoteViews);

            // Kill Code//
            break;
        }

        // Night Mode Is Active, We're At Night!//
        case Configuration.UI_MODE_NIGHT_YES: {

            // Instantiate Variable RemoteViews remoteViews / Directs Activity To GUI//
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_night_ui);

            // Initiate viewText Method//
            viewText(context, remoteViews);

            // Kill Code//
            break;
        }

        // We Don't Know What Mode We're In, Assume Notnight//
        case Configuration.UI_MODE_NIGHT_UNDEFINED: {

            // Instantiate Variable RemoteViews remoteViews / Directs Activity To GUI//
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_ui);

            // Initiate viewText Method//
            viewText(context, remoteViews);

            // Kill Code//
            break;
        }
    }

我该如何使用这段代码,使小部件在夜间模式开启后更新其颜色。另一个例子是Nova Launcher和Google搜索栏小部件。它会在Android激活夜间模式后切换。有人知道如何做到这一点吗?


试着看一下这个链接 - omini data
更改我的Activity的日夜模式没问题。问题是将我的主屏幕小部件从红色变成黑色。我不知道该怎么告诉小部件在白天或黑夜来临时自动更新。 - Jordan
你是否已经创建了一个颜色XML和一个公共样式类? - omini data
1个回答

0

我已经让它工作了,并且使用了你所做的很多东西。我的演示展示了日夜主题在小部件上的工作。 :) 有一个问题,应用程序必须在运行中才能确定哪种模式正在运行。但是,如果不进行自动操作,则始终有效。https://github.com/juanmendez/android-styling-recipes/tree/02.dayNightTheme+Widget

这只是半个答案。这是对此的完整答案。我编写了一个库,当与应用程序一起使用时,它需要包含某些依赖项。然后它利用您的依赖项,并允许您的WidgetProvider将小部件更新为日间或夜间主题。https://github.com/juanmendez/LightThemeScheduler


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接