Android - 未为 Samsung Galaxy S8+ 选择 layout-large
Android - layout-large not being selected for Samsung Galaxy S8+
在我的应用中,我根据指南 here and here 在合理范围内支持多屏幕。不过,S8+似乎采用的是layout-normal布局,而不是layout-large。我记得读过它可能是由于它的奇怪纵横比 (18.5:9) 当它的设置为 "use fullscreen" 或其他东西被启用时。似乎有或没有此设置结果是相同的(使用正常布局)。我怀疑还有其他 phone 会遇到此问题。
另外,有趣的是,我在 Android Studio 中为那个 phone 做了一个通用设备定义,它是 2960x1440,6.2" 屏幕预览屏幕,Android 自动重新分类它作为 平板电脑 (并强制它在预览中使用大布局)。这让我相信它会在设备上运行时做同样的事情,但看起来它并没有't.
我如何设置我的应用程序以让这些 phone(也许那些具有这些...有问题的...纵横比)使用它应该使用的大布局?
正如@CommonsWare 的评论中提到的,最好使用 dp 大小限定符,但要说明问题发生的原因:
旧的尺码限定符是尺码 "buckets",它们表示尺码范围并且不是很精确。所以 S8+ 在设备上属于正常尺寸范围(可能是由于设备报告的尺寸),但在模拟器上很大(我觉得这很可疑)。
如果您仔细查看此处列出的资源限定符定义 Providing Resources,您会发现屏幕尺寸的定义有点模糊。将单位 dp 设为 1/160 英寸。屏幕尺寸他们描述的是 "approximately":
小:2" x 2.6"
介质:2" x 2.9"
大:3" x 4"
超大:4.5" x 6"
请注意,所有这些尺寸都小得惊人。实际上,设备制造商决定它属于哪个桶,这很可能就是为什么你的 S8+ 报告 "normal" 而模拟器是 tablet.. 通过上面的 table,它会是.
基本上我建议您使用 "smallest width" 限定符。您可以在上面链接的同一页面上找到有关您可能需要的值的一些提示。
在我的应用中,我根据指南 here and here 在合理范围内支持多屏幕。不过,S8+似乎采用的是layout-normal布局,而不是layout-large。我记得读过它可能是由于它的奇怪纵横比 (18.5:9) 当它的设置为 "use fullscreen" 或其他东西被启用时。似乎有或没有此设置结果是相同的(使用正常布局)。我怀疑还有其他 phone 会遇到此问题。
另外,有趣的是,我在 Android Studio 中为那个 phone 做了一个通用设备定义,它是 2960x1440,6.2" 屏幕预览屏幕,Android 自动重新分类它作为 平板电脑 (并强制它在预览中使用大布局)。这让我相信它会在设备上运行时做同样的事情,但看起来它并没有't.
我如何设置我的应用程序以让这些 phone(也许那些具有这些...有问题的...纵横比)使用它应该使用的大布局?
正如@CommonsWare 的评论中提到的,最好使用 dp 大小限定符,但要说明问题发生的原因:
旧的尺码限定符是尺码 "buckets",它们表示尺码范围并且不是很精确。所以 S8+ 在设备上属于正常尺寸范围(可能是由于设备报告的尺寸),但在模拟器上很大(我觉得这很可疑)。
如果您仔细查看此处列出的资源限定符定义 Providing Resources,您会发现屏幕尺寸的定义有点模糊。将单位 dp 设为 1/160 英寸。屏幕尺寸他们描述的是 "approximately":
小:2" x 2.6" 介质:2" x 2.9" 大:3" x 4" 超大:4.5" x 6"
请注意,所有这些尺寸都小得惊人。实际上,设备制造商决定它属于哪个桶,这很可能就是为什么你的 S8+ 报告 "normal" 而模拟器是 tablet.. 通过上面的 table,它会是.
基本上我建议您使用 "smallest width" 限定符。您可以在上面链接的同一页面上找到有关您可能需要的值的一些提示。