1

当我开始在一些 7 英寸的 Android 机型上测试我的应用程序时,我遇到了一个奇怪的行为,我想知道其他人是否发现了同样的问题,以及人们推荐的修复方法。

以下是详细信息:

该应用程序具有完整的平板电脑支持,这是由布局的限定符触发的。xlarge 设备获得平板模式,屏幕上显示多个片段。

对于较新的 Android 版本,还有一些值设置变量,这些变量使用 sw600dp 限定符和 xlarge 限定符更改流上的 UI。

问题:

我现在正在 Kindle Fire 和 RIM BlackBerry Playbook 上进行测试,并且还想支持即将推出的 Google Nexus 平板电脑(或其他任何名称)和其他 7 英寸外形设备。

playbook 和 fire 都有 7 英寸的屏幕和 1024x600 的屏幕分辨率。

然而,剧本似乎诱使 Android 认为它是一个 xlarge 设备,而 fire 并没有这样做。

平板电脑和标准用户界面都可以正常工作,但恕我直言,平板电脑模式更好,可以在 7 英寸设备上使用。但是,如果我将布局推入大型限定符以使平板电脑模式也火起来,我也会在例如 Note 或其他相当小的设备上得到它。

使用 Android 4x 我可以使用 sw600dp 和其他限定符,但旧版本呢?我假设一个 7 英寸的设备应该表现得像一个平板电脑,但例如 Note..

这种情况的最佳实践是什么?我对报告 xlarge 的剧本的观察是否正确?

4

1 回答 1

3

然而,剧本似乎诱使 Android 认为它是一个 xlarge 设备,而 fire 并没有这样做。

设备制造商根据尺寸和密度选择设备放入的存储桶。对于像 RIM 和亚马逊这样不想要 Play 商店的制造商来说,这会翻倍,因此不必遵守 Play 商店规定的任何特定兼容性要求,因此欢迎他们对 Google 的指导嗤之以鼻。

这种情况的最佳实践是什么?

我不能告诉你“最好的”。

但是,如果您希望针对特定设备覆盖某些布局以使用特定大小,那么我会尝试以下方法(假设您将用于正常情况的布局称为R.layout.main):

步骤#1:创建res/layout/main_funky.xml为符号链接或硬链接res/layout-xlarge/main.xml(同样适用于-land等)。

第 2 步:在您的 Java 代码中,无论您指的是什么R.layout.main(例如onCreateView()a Fragment),决定是加载R.layout.main还是R.layout.main_funky根据android.os.Build数据来按型号检测这些古怪的设备。由于R.layout.main_funky是您的常规main布局之一,所有依赖于小部件的代码都应该不受此选择的影响。

第 3 步:在您的特定情况下,将 MMPD(魔法 Maven 精灵尘埃)添加到第 1 步和第 2 步... :-)

我对报告 xlarge 的剧本的观察是否正确?

我买了一本 Playbook,确定 RIM 的分发模式……令人不快,并尽了最低限度的准备,在上面写了一本书的章节。我还没有尝试查看它是-large,-xlarge还是其他东西。

话虽这么说,NOOK Tablet IIRC 受此困扰(声称是,-xlarge而不是-large)。

我希望谷歌 Nexus 平板电脑,如果这样的事情实现,能够正确地支持大小桶,再加上运行一个足够新的 Android 版本,-sw600dp并且 kin 可以工作。

于 2012-06-04T23:22:43.507 回答