【问题标题】:Android mobile in landscape is picking up tablet layout横向的Android手机正在采用平板电脑布局
【发布时间】:2021-04-14 05:06:18
【问题描述】:

我在我的 Android 应用中有一个选项卡布局,其中我有两种不同的设计用于移动设备和平板电脑。我已经按照page 创建了两个不同的布局文件:

  1. res/layout/myLayout.xml(用于移动应用)
  2. res/layout-w600dp/myLayout.xml(适用于 7 英寸平板电脑)

现在,当我在横向使用我的手机并打开应用程序时,它会选择为平板电脑定义的布局(layout-w600dp),而不是为移动设备定义的布局(layout)。这会导致在移动应用中显示为平板电脑定义的布局时出现问题。

我尝试在 layout-sw600dp 中定义平板电脑的布局,但平板电脑中没有出现预期的布局。

提前致谢。感谢您的时间。

【问题讨论】:

  • 您是否尝试过方向限定符:developer.android.com/training/multiscreen/…?
  • @MorrisonChang 在 layout-land 上有一个重复的文件,我尝试使用别名来避免重复的文件定义。但它向我抛出了错误“android.content.res.Resources$NotFoundException: Resource ID #0x7f0d0082 type #0x1 is not valid”
  • 您应该显示代码/布局。以防万一,我也会从头开始重建应用程序。

标签: android android-layout android-tablayout android-tablet-layout


【解决方案1】:

在这种情况下,正确的解决方案是使用 layout-sw600dp 而不是 layout-w600dp。

每次屏幕宽度超过 600dp(包括横屏模式下的移动)时,都会选择 layout-w600dp 中的布局

layout-sw600dp 的布局仅在最短宽度超过 600dp 时使用,方向无关紧要,因此仅适用于平板电脑。

【讨论】:

    【解决方案2】:

    制作布局的横向版本res/layout-land/myLayout.xml,并将原始布局的内容复制到该新文件中。它会在横向时膨胀。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2014-03-14
    • 2011-10-31
    相关资源
    最近更新 更多