如何将多个小部件尺寸放在一个 apk 中?

Posted

技术标签:

【中文标题】如何将多个小部件尺寸放在一个 apk 中?【英文标题】:How to put multiple widget sizes in one apk? 【发布时间】:2011-03-23 14:40:39 【问题描述】:

我想要做的是在一个 apk 中拥有一个不同大小(即 2x2、3x3、4x4 等)的时钟小部件,以及一个能够选择要添加的大小的配置活动。

根据我从文档中学到的知识:

    小部件大小在相应 xml 文件的 标签中指定 我还在该文件中为该提供者设置了配置活动

所以看起来大小是 AppWidgetProvider 的一个属性,我需要以某种方式从第一个配置活动中的代码创建另一个提供程序... 还是我弄错了,还有其他方法?

这可能吗? :) 我被告知有些小部件可以做到这一点:)

提前致谢!

附:我读过this 和this。第一个解释了如何在一个 apk 中放置多个 wigets,但不清楚如何在运行时在它们之间进行选择。第二个是关于改变布局,但不是大小......

【问题讨论】:

问题是关于添加小部件菜单中只有一个条目,并将大小配置推迟到您自己的配置活动。我怀疑有没有办法做到这一点 - AFAIK,android 需要在配置之前知道大小。 嗯,jamesh,我想你只是改变了我的想法! :) 在阅读此问题的第一个相关链接时,我没有意识到如果我喜欢那里的描述,我将从一个 apk 安装多个小部件,对吗?这个方案还算可以接受! 太棒了。很高兴能够提供帮助。 【参考方案1】:

您真的必须在运行时执行此操作吗?可以在一个 .apk 中定义多个小部件。

也许你可以看看 transdroid 源码?它们在同一个包中包含两种尺寸的小部件。

Transdroid 使用的AndroidManifest.xml

【讨论】:

是的,这似乎是唯一的出路,正如 jamesh 在评论中指出的那样 :) 总而言之:原始问题没有解决方案,但似乎不可能 :)跨度> code.google.com/p/transdroid/source/browse/trunk/…getting 404 not found 请在该链接的答案中提供一些使用内容【参考方案2】:

我希望我没看错你的问题,并认为我有你的答案。我可以重写这些信息,或者只是指出它(因为我很可能无法做到公正)。

http://developer.android.com/guide/topics/appwidgets/index.html#Manifest

查看“创建应用小部件配置活动”下的内容。这个例子也很好。

通过这种方式,您可能无法在没有大量编辑的情况下设置特定的布局大小,但允许用户自定义(这是您想要的正确吗?)

【讨论】:

是的,我知道配置活动。但我正在寻找一种方法来从那个看起来不可能的活动中更改小部件的大小,毕竟......所以我想我现在应该取消这个问题:) 谢谢!【参考方案3】:

我有同样的问题,希望找到一种方法,只向小部件列表添加一个条目,并让配置活动决定大小,但我意识到这是不可能的。

考虑一下,这只是公平的:如果程序有权在运行时设置小部件的大小,那么一旦添加到启动器,就会恶意增加小部件,并占用比授权更多的空间。

所以如上所述,解决方案是添加多个小部件提供者并让用户选择她想要的大小。如果选项与样式无关而仅与颜色或刷新周期相关,您甚至可以使用相同的配置 Activity。

【讨论】:

以上是关于如何将多个小部件尺寸放在一个 apk 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将小部件尺寸传递给 __init__

如何将 QStackedWidget 大小设置为子小部件的最小尺寸?

如何将卡片小部件放在 SliverAppBar 中?

在模拟器中或根据不同的屏幕尺寸将小部件定位在堆栈中的位置变化。扑

小部件在 ICS 中显示“未安装应用程序”Toast

将多个小部件添加到滚动视图