问题标签 [screen-orientation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12349 浏览

ipad - 纵向和横向之间的 iPad 视口问题

我有一个网页出现在 ipad 上。我为视口添加了这个元数据:

它在纵向上工作得很好,然后当 ipad 进入横向模式时它也工作得很好。问题是当我从横向返回纵向时,页面过度拉伸,这意味着页面的某些部分在纵向模式下会离开屏幕。我必须双击屏幕才能恢复正常视图。

然后我尝试了:

但是在纵向模式下它不够宽,并且图标/文本应该只有一行时会换行到 2 行。一切都变得混乱起来。有什么建议么?

0 投票
1 回答
550 浏览

android - 如何将视图旋转到纵向模式?

我有一个应用程序,其方向在清单文件中被硬编码为横向。当用户在应用程序上按下选项/菜单时,应用程序会启动一个网格视图/列表视图(取决于单击的选项)。这在横向模式下效果很好。但是,如果我想在用户以纵向模式查看应用程序时更改 UI,我会遇到问题。无论手机处于何种模式,UI 始终以横向显示。(因为 Manifest 文件中的设置)。我尝试做一个旋转动画(90度),但这会导致问题。对于列表视图,动画后滚动无法正常工作,而对于网格视图,对网格视图元素的点击对应的是较旧的布局(横向),而不是较新的布局(旋转动画后)。有没有人遇到过这个问题?任何建议都将受到欢迎。

0 投票
1 回答
964 浏览

android - 根据方向改变风格

是否可以为纵向定义一种样式,为横向定义另一种样式,因此当设备旋转时,更改是自动的,还是必须以编程方式完成?

谢谢

0 投票
1 回答
1213 浏览

android - Android - 处理屏幕方向

我目前正在开发一个根据屏幕方向具有不同行为的 Android 应用程序。

我正在使用 getWindowManager().getDefaultDisplay().getRotation() 在 onCreate() 方法中获取屏幕方向并从那里进行管理。

基本上,我的问题是我需要控制方向。在横向模式下,当用户决定时,应用程序必须切换到纵向模式,并保持这种状态,但直到用户进入纵向模式,然后再切换到横向模式。

我正在使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 在横向时更改方向。问题是,使用这个,我不能回到风景。如果我在 onCreate() 中使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED),问题是几秒钟后切换回横向模式(因为屏幕仍处于横向)。

有没有其他方法来管理这个?基本上,有没有办法用监听器捕捉屏幕方向的变化(或者在onCreate之外的任何地方,因为当视图被锁定在纵向模式时它不会被调用)?我找不到任何关于那个的...

欢迎任何想法!

谢谢!

0 投票
1 回答
1473 浏览

android - 通过 onConfigurationChanged() 改变方向?

伙计们抱歉,如果听起来有点天真……在一项活动中,我有一个按钮和 4 个文本视图。

根据这里的这篇文章,我已经更改了清单文件并覆盖了 onConfigurationChanged()。我得到了想要的布局。但是按钮失去了它的 onClickListener 并且 textViews 将它们的文本更改为我最初在 xml 中设置的内容。

如何将 onClickListener 分配给按钮,因为它设置为 onCreate() 中的按钮。在每个 textView 的 onCreate() 中也会调用 setText("anything")。使用 onConfigurationChanged() 的正确方法是什么?因为似乎我必须重新启动一切?

提前致谢。

0 投票
1 回答
566 浏览

iphone - iOS:从多任务栏恢复应用程序时如何保持方向?

问题:

如果我在 UIInterfaceOrientationLandscapeRight 方向时将应用程序发送到后台,当我从多任务栏恢复应用程序时,方向是 UIInterfaceOrientationLandscapeLeft,这是默认的,用于显示的快照和视图。视图立即通过旋转回到暂停前的最后一个已知方向 UIInterfaceOrientationLandscapeRight 来重新定位自身。

已知数量:

  1. 应用程序支持 2 个界面方向:UIInterfaceOrientationLandscapeLeft 和 UIInterfaceOrientationLandscapeRight
  2. 应用程序利用自动旋转所有视图控制器覆盖 ShouldAutoRotateToInterfaceOrientation,如果方向是支持的方向之一,则返回 yes
  3. 两个方向都在 UISupportedInterfaceOrientations 键下的 Info.plist 中定义
  4. 当应用程序被发送到后台时,会拍摄并存储支持的方向的自动快照
  5. 从跳板恢复应用程序按预期工作,方向与发送到后台时相同。

观察到的行为:

当从多任务栏恢复应用程序时,应用程序会收到 2 个方向通知,这些通知分别由覆盖的 shouldAutoRotateToInterfaceOrientation 评估。首先是 UIInterfaceOrientationLandscapeLeft,然后是 UIInterfaceOrientationLandscapeRight。

预期成绩:

从多任务栏恢复应用程序时,方向与暂停时相同。因此,如果我们处于 UIInterfaceOrientationLandscapeRight 模式,那么我希望以相同的方向恢复。

0 投票
1 回答
2843 浏览

android - 是否可以在某些屏幕尺寸上支持两个方向,但在其他屏幕尺寸上不支持?

在我的应用程序中,我目前仅支持某些活动的纵向,因为我假设大多数手机用户大部分时间都会使用纵向(并用一只手握住设备)。

然而,在新的 Honeycomb 平板电脑上,用户似乎会更频繁地使用横向方向,因此我希望在我的更多活动中同时支持这两种方向。

不过,我宁愿不必返回并为较小的屏幕尺寸添加横向布局(一直到 QVGA),所以我想知道是否有一种方法仅支持 xlarge 屏幕类型的横向布局,但不支持其他。

0 投票
1 回答
842 浏览

android - 如何为其他应用设置屏幕方向?

通过以下几行,我们可以在应用程序中设置方向..

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

如果我想为每个屏幕设置方向(不仅在应用程序中)。我怎样才能做到这一点?任何帮助。

提前致谢

0 投票
1 回答
2179 浏览

android - Android:onRetainNonConfigurationInstance() 和不同布局的方向变化

我有一个活动,它应该有两种截然不同的布局,具体取决于用户是以横向还是纵向模式持有它。

在 onRetainNonConfigurationInstance() 中,我存储了大量信息,如果存在,则将其提取到 onCreate() 中,以恢复用户数据。

我有一种方法可以确定手机当前是处于纵向还是横向模式 - 如果 getWindowManager().getDefaultDisplay().getWidth() 大于 getWindowManager().getDefaultDisplay().getHeight(),则它处于横向模式.

在我的纵向布局 xml 文件中,我有一些横向布局 xml 文件中不存在的图像视图。在 onCreate() 中,我检查我们是否处于纵向,如果是,则初始化并修改它们。如果我们处于横向模式,我不会。

这一切都适用于从纵向切换到横向,但是当切换回纵向时,我只为纵向模式执行的代码给出了一个空指针异常——它找不到视图元素。

堆栈跟踪:

有谁知道我做错了什么?

谢谢!!r3mo

编辑:

Popup.java 部分导致问题:

布局文件的纵向版本包含这些“间隔”,但横向版本不包含。这是在使用 onRetainNonConfigurationInstance() 时应该如何处理方向变化和不同布局的方式吗?代码从纵向到横向都可以正常工作,但是当回到纵向时,我得到 NullPointerException。

编辑2:

isInPortrait() 似乎工作正常 - 但是我会改变它。我不只是让视图不可见的原因是布局的结构在横向上有很大的不同。显然,这种横向布局工作正常 - 从纵向到横向然后再回到纵向时会发生错误。

感谢所有帮助!

编辑 3:

我现在更改了执行此操作的方式,以便在 layout-port/ 和 layout-land/ 中拥有相同的布局文件,并在横向 View.GONE 中制作我不想要的视图元素。在这个问题上获得输入肯定仍然是件好事 - 能够为横向和纵向提供完全不同的布局似乎是 android 的一个非常强大的功能。

谢谢!

0 投票
2 回答
413 浏览

android - 如何更快地在android中切换方向?

我有一个 android 应用程序必须在启动时加载非常大的文件。每当它切换方向时,它都必须销毁并重新创建活动,从而导致大文件重新加载。这大约需要 30 秒,如果我要实际发布它,这非常不方便。我确定我在这里做错了什么。我听说过 onSaveInstanceState() 和 onRestoreInstanceState(),但我不知道如何使用它们。有没有人知道我可以如何使用它来加速方向变化?