4

我正在尝试开发一个相当复杂的 appwidget,它可以以编程方式更改其中的一部分。Android 建议此类事情使用 ViewStub 小部件。

根据AppWidgets 页面RemoteViews 支持 ViewStub。

因为在使用 RemoteViews 时我不能findViewById()。所以我尝试使用

RemoteViews.setViewVisibility(viewstub_id, View.VISIBLE)

并且适用于 API > 15 的设备。

问题是,它不适用于较旧的 API,并且在扩展布局时会崩溃。

Error inflating AppWidgetppWidgetProviderInfo(provider=ComponentInfo{com.example.app/com.example.app.widgetProvider}): android.view.InflateException: 
Binary XML file line #56: Error inflating class android.view.ViewStub

我试图寻找有关 API 兼容性的任何提及,但 ViewStub 应该可以从 API 1 获得。

那么当我们可以在 appwidget 中使用 ViewStub 时,是否有任何相关信息?

谢谢!

4

2 回答 2

1

我发现提到 ViewStub只能在 API 16 中的 RemoteViews中。

相当隐蔽的信息。

于 2015-04-23T00:04:51.157 回答
0

非常老的问题,但您也可以做的一件事是,如果您的应用小部件在某种程度上是模块化的。使用 . 在其他视图中添加其他视图addView。需要注意的一件事是,您将在更新之间清除该特定模块的所有远程视图,否则您将最终重复添加。

于 2022-01-08T11:10:20.930 回答