如何在应用小部件中部分更新视图而不重建所有 RemoteViews

5
我正在实现一个应用小部件,我想能够更改小部件布局中单个视图的属性,而不必从头开始重建所有的RemoteViews,这涉及加载XML等,并且在某些情况下不必要。是否有一种方法可以说“更新当前小部件布局中标识为特定ID的视图的属性X”?我看到AppWidgetManager类中有一个partiallyUpdateAppWidget方法,但我既不明白它是用于此目的,也不知道如何使用它。你能帮我或指向一个有用的链接或示例吗?
1个回答

4

是的,您可以在AppWidgetManager类中使用partiallyUpdateAppWidget方法。

举个例子,如果您想要更新小部件内部的文本视图:

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
rv = new RemoteViews(context.getPackageName(), R.layout.widgetlayout); 
rv.setTextViewText(R.id.ofTextViewInWidgetLayoutXML, "Hello World");
appWidgetManager.partiallyUpdateAppWidget(appWidgetIds, rv);

参考: 如何只更新小部件RemoteViews而不完全创建新的?

这篇Stack Overflow的帖子问如何在Android中只更新小部件的RemoteViews,而不是每次都创建一个新的。这个问题通常出现在需要更新小部件的频繁性能较差的情况下,因为创建整个小部件布局需要昂贵的UI线程时间和内存开销。


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