【问题标题】:How to calculate home widget width如何计算主页小部件的宽度
【发布时间】:2013-04-28 13:34:15
【问题描述】:

有没有办法在运行时计算主页小部件的宽度。我想根据它的宽度添加可变数量的项目(图像视图),所以我想以 dp 计算小部件的宽度。

【问题讨论】:

  • 为了避免您查看我尝试过但不起作用的事情:您无法通过使用自定义视图和覆盖 onSizeChanged 来解决此问题(小部件不支持自定义视图);我还没有找到一个 RemoteViews 调用,它在小部件渲染后提供有关视图的信息(直到 updateAppWidth 已执行,我得到的印象是 remoteView 本身不知道。)

标签: android android-layout android-widget


【解决方案1】:

API v16 (4.1) 添加了一个onAppWidgetOptionsChanged 回调并根据App Widget guide

在第一次放置小部件时以及在任何时候调整小部件的大小时都会调用此方法。您可以使用此回调根据小部件的大小范围显示或隐藏内容。您可以通过调用 getAppWidgetOptions() 来获取大小范围,它会返回一个包含以下内容的 Bundle:

OPTION_APPWIDGET_MIN_WIDTH - 包含小部件实例的当前宽度的下限,以 dp 为单位。

OPTION_APPWIDGET_MIN_HEIGHT - 包含小部件实例的当前高度的下限,以 dp 为单位。

OPTION_APPWIDGET_MAX_WIDTH - 包含小部件实例的当前宽度的上限,以 dp 为单位。

OPTION_APPWIDGET_MAX_HEIGHT - 包含小部件实例的当前宽度的上限,以 dp 为单位。

很遗憾,对于 4.1 之前的设备没有干净的替代方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2016-04-28
    • 2021-12-03
    • 1970-01-01
    • 2013-08-29
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多