【问题标题】:Android-Studio: Layout for wide screen in a portrait modeAndroid-Studio:纵向模式下的宽屏布局
【发布时间】:2018-04-18 06:43:03
【问题描述】:

我有一个只能在纵向模式下工作的应用程序。 仅使用(布局)资源就可以很好地工作。 现在我遇到了一些设备的问题,

  • 设备只有纵向模式,没有方向,对我来说没问题。
  • 屏幕高度小于宽度,记住这不是横向模式。

     __________
    | portrait |
    |__________|
    
  • 如果我使用了Layout-land,它将无法工作,设备会选择正常的布局资源。

我试过layout-swlayout-wlayout-h,没有解决办法。

我希望普通设备使用“布局”,而高度小于宽度的设备使用另一种布局。

请记住,这不是风景。

提前致谢。

================================================ =============

更新

有没有办法使用 Layout-11x00,其中 11 是宽度,00 是高度?我试过了,它有效,但问题是它适用于所有设备,而不仅仅是宽设备。我尝试将 Layout-774x480 设置为 w=774 和 h=480。但它也适用于我的三星手机,我不想要这个。 为什么当我将布局设置为“Layout-774x480”时,它针对的是我的三星?而我的三星宽度不是>高度?!我的意思是“Layout-774x480”和“Layout-480x774”有什么区别?

【问题讨论】:

  • 感谢 Reaz 的编辑。
  • 不客气。 :)
  • 有人可以帮忙吗?我怎么解决这个问题?问候

标签: android xml android-studio layout landscape-portrait


【解决方案1】:

您可以设置限定符以及布局文件夹名称,以便在设备中运行应用程序时从该特定文件夹中选择布局。 Here is the documentation 我建议你看看。

在您的情况下,您只需创建一个名为 res/layout-w600dp/main_activity.xml 的布局目录,它指示设备屏幕是否为 600dp 宽或更大,将从该文件夹中选择布局。

我检查您是否已经尝试过使用layout-wlayout-hlayout-sw 设置。但是,我认为您缺少应该选择的设备屏幕的预期宽度。

希望对您有所帮助!

更新

如果您愿意根据高度小于宽度的决定来设置不同的布局,那么您可以考虑在设置活动的内容视图之前检查屏幕的高度和宽度。

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

if(height > width) setContentView(R.layout.main_activity.xml);
else setContentView(R.layout.main_activity_wide.xml);

【讨论】:

  • 谢谢。但我并不是说完全宽。我有一些设备在纵向模式下的宽度 > 高度(不是横向)。除了普通设备之外,如何为这些设备创建布局。
  • 谢谢,但是没有硬编码就没有办法做到这一点?另外,如果我检查宽度和高度,并检查 w>h,如果设备处于横向模式,它不会给我真实的吗?我的意思是,我想让它与普通设备以及宽设备一起使用。此外,如果我对其进行硬编码,那么我必须自己处理代码中的所有可绘制对象。
  • 您可以通过覆盖函数onConfigurationChanges 轻松处理横向模式。但是,我之前已经建议过的动态模式不适合您的情况。
  • 我的意思是,我有一台设备处于纵向模式,它的 w>h。另一台处于横向模式的设备及其 w>h。我不让我的应用程序在横向模式下工作,但在这两种情况下,(if w > h) 将 = true。
  • 我可以使用 Layout-11x00,其中 11 是宽度,00 是高度?我试过了,它有效,但问题是它适用于所有设备,而不仅仅是宽设备。我尝试将 Layout-774x480 设置为 w=774 和 h=480。但它也适用于我的三星手机,我不想要这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
相关资源
最近更新 更多