我为我的应用创建了一个很好的广度。它只显示从服务器下载的项目列表。嗯,确切地说,它看起来只是一个列表,因为较旧的Android版本(我想支持)不支持RemoteViews中的ListView。
我希望我的小部件显示最新项目列表,我希望这些项目能够占用所有可用的小部件空间。为了更好地展示我的问题,以免假设WLOG我想要一个具有所选节目的电视节目表的小部件。知道:
如果用户调整大小以使其变大,我如何确保小部件底部不会有空白空间?我搜索了SO,似乎当用户更改小部件大小时(在ICS或自定义启动器上 - GO Launcher EX允许它),将无法获得小部件的新维度(纠正我,如果我错了)。
但我真的不需要它们!我想知道有多少项适合小部件,并且从小部件的大小计算这只是其中一种方法。
所以,我问你是否可以,例如,如果远程视图可见,是否可以接收通知,或创建自定义视图以便在RemoteViews中使用,这样可以让我估计可见项目的数量。 / p>
如果不可能,我只需要使用一些合理的默认值,但知道我可以显示多少行会很好。
答案 0 :(得分:4)
自Android 4.1(API级别16)起,您可以使用onAppWidgetOptionsChanged检测大小更改。看一下这个answer的简单例子。至少使用此回调,您可以跟踪窗口小部件的大小范围(可惜您无法跟踪实际窗口小部件大小)。使用以前的版本和自定义启动器你运气不好:AFAIK没有通用的方法来获得实际的小部件大小范围,甚至更少的实际大小。
在您的情况下,我要做的是使用适合默认小部件大小的多个视图填充小部件,如appwidget提供程序中所定义。这样你就可以避免在底部获得空白,当然,除非显示的项目实际上很少。当窗口小部件调整大小时,您可以使用API级别16 +的onAppWidgetOptionsChanged显示更多视图,并且API级别< 16 AFAIK您将获得空白空间,但在这种情况下,您可以很快触发小部件更新,以最大限度地减少此问题。