如何在不重建所有RemoteView的情况下部分更新应用程序窗口小部件中的视图

Gia*_*nzi 5 android android-widget android-layout remoteview

我正在实现一个app小部件,我希望能够在小部件布局中更改单个视图的属性,而无需RemoteViews从头开始重建所有内容,这涉及加载XML等,在某些情况下不需要.有没有办法说"在当前窗口小部件布局中由特定ID标识的视图上更新属性X"?我已经看到班上有一种partiallyUpdateAppWidget方法,AppWidgetManager但是我无法理解,也不是为了这个目的,也不是必须如何使用它.你能帮助我或指向一个有用的链接或例子吗?

小智 4

是的,您可以在类中使用partiallyUpdateAppWidget 方法AppWidgetManager。例如,如果您想更新小部件内的文本视图:

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

参考: 只是更新一个小部件 RemoteViews 而不是完全创建一个新的?