我正在开发一个小部件。在典型的手机上,我希望它是 4x2,填满主屏幕的宽度。然而,在一些较大的手机(例如三星 Galaxy Mega)上,启动器有 5 个单元格的宽度。我正在尝试找到基于启动器单元尺寸自动将我的小部件提供程序更改为 5x3 的最佳方法。
目前,我们有两个提供商:一个 4x2 和一个 5x3。由于我们只想在普通尺寸的手机上显示一个 (4x2)(它们不支持 5x3),因此我们在添加小部件时进行运行时检查,以检查设备型号是否与具有 5 单元格的型号之一匹配宽发射器。然后我们禁用其他小部件提供程序组件。但是,这并不理想,因为 5x3 将暂时显示在应用程序抽屉中,并且如果用户尝试添加它会导致启动器强制关闭。
关于如何解决这个问题的任何想法?我意识到我很可能无法准确读取单元格宽度大小,因为有大量的启动器,并且没有 API 可以检查。但是,我认为我们都同意,一定有比保留具有 5 单元屏幕的设备的静态列表更好的方法(更不用说具有自定义启动器的人可以设置宽度范围)。
我曾简要考虑过使用资源文件夹限定符(sw720dp 等)......但这仍然不能解决确定用户启动器在单元格中的宽度的问题。
谢谢你的帮助,德鲁
PS我也意识到这里问了一个类似的问题:适合所有屏幕尺寸的Appwidget最大宽度,没有评论或答案。任何输入将不胜感激。