С выпуском Android 10 несколько виджетов (Gmail, Новости Google, Samsung Email) теперь обновляют свою тему при переключении в темный режим. Я пытаюсь повторить это поведение. У меня есть виджет списка с AppWidgetProvider и RemoteViewsFactory. Однако при переключении темного режима элементы ListView переключаются на темную тему, но не сам макет:
Темный режим выключен:
Темный режим включен:
![Dark mode on](https://i.stack.imgur.com/TL5aa.png)
В моем коде я устанавливаю макет в методе OnUpdate () в AppWidgetProvider:
override fun onUpdate(
context: Context,
appWidgetManager: AppWidgetManager?,
appWidgetIds: IntArray?
) {
Log.d(TAG, "Updating Transaction Widget")
GlobalScope.launch(Dispatchers.IO ) {
updateTransactionTable(context)
for (i in appWidgetIds!!.indices) {
val layout: RemoteViews = buildLayout(context, appWidgetIds[i])
appWidgetManager!!.updateAppWidget(appWidgetIds[i], layout)
}
super.onUpdate(context, appWidgetManager, appWidgetIds)
}
}
onUpdate не вызывается при переключении темного режима. Однако я не могу найти какой-либо метод, который вызывается в AppWidgetProvider при переключении темного режима, поэтому я не уверен, где вызывать новую компоновку компоновки и даже как определять, когда необходимо изменение.
Любая помощь будет высоко ценится.