【问题标题】:Force use only portrait xml layout android?强制只使用纵向xml布局android?
【发布时间】:2018-08-27 13:52:42
【问题描述】:

我在纵向/横向都有一个名为activity_main.xml 的xml 文件。问题是 xml 名称相同,但里面的标签完全不同。 在 OnCreate 方法中输入时是否可以强制活动,基于某些标准仅使用纵向模式。在 Manifest 中设置屏幕方向不适用于我的情况。

我试过了:

  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

当用户尝试以横向模式打开活动等手机处于横向模式时,问题就来了可能或者我的逻辑是错误的。

【问题讨论】:

  • 把你的xml放在这里
  • 那为什么你有一个 xml 景观呢?只是不要使用它!
  • 需要用到但其他情况下。

标签: android xml android-layout


【解决方案1】:

您可以使用以下代码强制活动仅在纵向模式下

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

【讨论】:

  • @KristiyanVarbanov 我检查了你的代码。它工作得很好。在我的设备中
  • 您在打开活动之前尝试过以横向模式旋转设备然后打开活动吗?
  • 首先,我在单击后以横向模式打开了另一个活动 我打开了此活动(仅在横向模式下),但在应用该行代码后,活动以纵向模式打开(即打开纵向模式 xml)
  • 你能告诉我完整的代码吗?我的意思是你有没有添加任何与此相关的内容?代码中没有提到?
【解决方案2】:

你可以使用这个功能:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

https://stackoverflow.com/a/50616559/5551621

【讨论】:

  • 这个怎么样? super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) setContentView(R.layout.activity_main);
  • 我试过但同样的情况,再次从land文件夹中调用xml布局,这很奇怪。
【解决方案3】:

创建 layout-land.xml 并在定向空间时自动调用它

任一方法强制方向设置是通过在AndroidManifest的活动标签中使用screenOrientation标签

android:screenOrientation="landscape"

或使用下一个方法

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

【讨论】:

  • 不,我在我的问题中写了它-。 “在清单中设置屏幕方向不适用于我的情况”。它需要以编程方式设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多