我很高兴看到Android 3.1对可调整大小的应用程序小部件的支持,但我对如何使它们真正工作感到困惑。
我不是appwidget新手,添加没有问题
android:resizeMode="horizontal|vertical"
到我的appwidget定义XML。就目前而言,这是可行的,小部件名义上是可调整大小的(长按它,就会出现把手,让我可以将边框拖动到不同的大小)。
不过有两个问题:
首先,当调整小部件的大小时,我的代码似乎不会被调用。在我的onReceive()
处理程序中设置的断点永远不会被命中。
其次,假设我可以进入我的代码,我在文档中看不到任何地方来获得小部件的当前大小。我已经使用了对AppWidgetProviderInfo.minWidth
和.minHeight
的调用,但它们只反映了XML中给定的最小维度,在运行时不会更改。
那么,如何真正实现可调整大小的小部件呢?
我很确定没有办法获得低于API 16的小部件大小,并且当小部件的大小调整到低于API 16时,没有意向广播。
从API 16添加了onAppWidgetOptionsChanged(),当您的小部件调整大小时会调用它,您可以从传递给它的捆绑包中检索小部件的大小。