方形布局的Appwidget在横向模式下无法正常显示

时间:2011-09-29 13:12:13

标签: android android-widget

我已经构建了一个方形布局的appwidget,因此它并不完全符合http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#sizes中建议的标准小部件大小。

我选择了3x2尺寸(android:minWidth =“220dip”android:minHeight =“146dip”),因为它是覆盖小部件布局的最小尺寸。

http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#design Google推荐:

“所有小部件必须适合六个支持的小部件大小之一的边界框,或者更好,在一对纵向和横向方向大小内,因此当用户切换屏幕方向时,您的小部件看起来很好”

我的小部件在纵向模式下看起来不错。切换到横向模式(在模拟器中)时,剪裁布局。我尝试在提供程序的XML中反转minWidth和minHeight值,然后在横向模式下看起来很完美但在纵向模式下剪切。将大小设置为3x3可以解决问题,但随后小部件会占用大量不必要的空间。

我知道我可以在res / layout和res / layout-land中定义不同的布局,但在这种情况下布局完全没有区别,在这两种模式中我希望窗口小部件看起来是方形的。 我需要的是'xml'和'xml-land',AFAIK这在Android中不受支持。

想法?

1 个答案:

答案 0 :(得分:5)

  

我需要的是'xml'和'xml-land',AFAIK这在Android中不受支持。

支持。所有资源类型都支持所有资源集限定符(例如-land)。

它是否会对你有所帮助完全是另一回事,因为我不知道你可以通过这种方式动态改变实际的应用程序小部件大小。

  

将大小设置为3x3可以解决问题,但随后小部件会占用大量不必要的空间。

您正试图强制使用特定的像素大小(或者至少是宽高比)。正如你所发现的那样,这将是脆弱的。此外,不能保证app小部件单元在所有设备和主屏幕实现上都具有相同的大小。

因此,您要么需要选择一个应用程序窗口小部件大小,为您提供大量额外空间(您的3x3场景),或者设计一个流动的应用程序窗口小部件布局,以适应您给出的实际大小(因此不会是正方形)。就个人而言,我推荐后者。