【问题标题】:Appwidget with square layout not showing properly in landscape mode具有方形布局的 Appwidget 在横向模式下无法正确显示
【发布时间】:2011-11-27 17:02:57
【问题描述】:

我构建了一个方形布局的 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谷歌推荐:

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

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

我知道我可以在 res/layout 和 res/layout-land 中定义不同的布局,但在这种情况下,布局并没有什么不同,在这两种模式下我都希望小部件看起来是方形的。 我需要的是'xml'和'xml-land'之类的东西,AFAIK这在Android中不受支持。

想法?

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    我需要的是“xml”和“xml-land”之类的东西,AFAIK 这在 Android 中不受支持。

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

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

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

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

    因此,您要么需要选择一个可以为您提供大量额外空间的应用小部件尺寸(您的 3x3 场景),要么设计一个适合您实际尺寸的流畅应用小部件布局(因此不会是方形的)。我个人推荐后者。

    【讨论】:

    • 谢谢,马克,你证实了我的猜测。是的,你是对的,我正在强制一个特定的纵横比,Android 不能保证在所有情况下都相同。顺便说一句,我在发布这个问题之前尝试了 xml-land 并且它不起作用。问题似乎是系统在主屏幕预留空间的方式,肯定是在添加小部件时设置的,无法更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2017-09-16
    • 2013-06-01
    • 1970-01-01
    • 2017-07-15
    • 2013-03-11
    相关资源
    最近更新 更多