问题标签 [screen-rotation]

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 投票
13 回答
46934 浏览

android - 如何在屏幕旋转期间处理 AsyncTask?

我阅读了很多关于如何保存我的实例状态或如何处理我的活动在屏幕旋转期间被破坏的内容。

似乎有很多可能性,但我还没有弄清楚哪一个最适合检索 AsyncTask 的结果。

我有一些 AsyncTasks 只是再次启动并调用活动的isFinishing()方法,如果活动正在完成,它们将不会更新任何内容。

问题是我有一个任务向 Web 服务发出请求,该请求可能会失败或成功,并且重新启动任务会导致用户蒙受经济损失。

你会如何解决这个问题?可能的解决方案有哪些优点或缺点?

0 投票
1 回答
789 浏览

android - performTraversals 和 onConfigurationChanged 中的竞争条件导致布局不正确?

我有一个中等复杂的 Android 应用程序,我通过 onConfigurationChanged 自己处理轮换,而不是重新启动活动。使用设备或模拟器一段时间(多次旋转)后,我开始看到应用程序间歇性地布局不正确(在横向模式下它保持纵向宽度)

我向活动中的所有“onAction”事件添加了跟踪日志记录语句,我看到了两个不同的流程:

正确的:

  1. onConfigurationChanged
  2. onMeasure (旧宽度)
  3. 布局
  4. onMeasure (使用新宽度)
  5. onSizeChanged
  6. 布局
  7. 绘制

当布局不正确时,我看到了这个流程

不正确:

  1. onMeasure (使用新宽度)
  2. onSizeChanged
  3. 布局
  4. 绘制
  5. onConfigurationChanged
  6. onMeasure (使用新宽度)
  7. 布局
  8. 绘制

查看发送的消息,我想我看到了问题的一部分:我看到 3 条重要消息被发布:

  • MessageType 1003 --> mWinFrame 的新大小
  • MessageType 1000 --> New Measure/Layout pass(使用 mWinFrame 的大小)
  • MessageType 118 --> 配置更改,启动 onConfigurationChanged。

当布局正确时,顺序似乎是 118、1003、1000。当布局错误时,顺序似乎是 1003、1000、118,因此在 onConfigurationChanged 发生之前使用新宽度进行测量。

对于额外的混淆,当布局不正确时,当我附加层次结构查看器并转储层次结构时,它会立即变得正确,但无论我在 onPreDraw 中请求重新布局和/或无效多少次,它都不会变得正确。

问题:

1) 即使给出了无序调用,我最终还是得到了 onConfigurationChanged 并请求重新布局,这发生在新的宽度和高度上,为什么这不会导致屏幕上的更新?

2) 为什么这些消息的发布顺序会随着时间而改变?我从来没有在新启动时看到过这个,但是当手机/模拟器已经“运行了一段时间”时开始看到它。

0 投票
2 回答
2784 浏览

android - Webview 方向不起作用

这是我的代码。除了方向,一切都很好,每次我旋转手机时它都会重新加载它重新加载到主页,这很痛苦。谁能告诉我问题出在哪里。

0 投票
1 回答
677 浏览

ipad - 横向 iPad 以纵向显示视图,然后快速将其旋转为横向

我为 iPad 构建的应用程序有一点问题。我有几个固定在纵向模式下的视图,还有一些可以在纵向或横向模式下工作的视图。一切都很好 - 我有 shouldAutorotateToInterfaceOrientation: 给我正确的结果,并且视图最终会以正确的方向结束。

我说“最终”是因为当我将设备置于横向模式时,我的一些视图会出现这种奇怪的行为,当我切换到它们时,它们会以纵向模式出现并且可见旋转到横向模式。它非常快,但它是可见且令人恼火的。奇怪的是,它只发生在三个视图中的两个中——第三个视图没有这种行为。这是一致的——每次我去“问题”视图时,他们都会给我同样的恼人行为。

有没有其他人看到这个?我做错了什么导致这种情况?

0 投票
3 回答
5096 浏览

android - 从待机状态解锁手机时,如何在我的 Android 应用程序中停止自动屏幕旋转

我有一个我希望始终以横向模式运行的 android 应用程序。

我实现了以下代码以使应用程序始终处于横向模式:

在应用程序清单中我的活动中
android:screenOrientation="landscape"

这似乎在应用程序的整个持续时间内启动并保持应用程序处于横向视图中。完美的!

但是,如果我在我的 HTC Aria (Android 2.1) 上运行该应用程序并且手机锁定,如果我解锁手机,我可能会看到该应用程序半秒钟并且它处于纵向,然后快速切换回横向模式。这是非常令人沮丧的,因为我所有的观点都是混乱的,你可以想象它看起来不专业。这发生在模拟器和我的真实手机上。

有谁知道如何在手机解锁时阻止应用程序暂时旋转?

补充:
我尝试过覆盖 onConfigurationChanged() 但没有成功。

我也试过把 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 进入 onResume() 但当手机解锁时,该应用程序仍然显示为不正确的方向。

0 投票
1 回答
1607 浏览

iphone - TabBarController 中的 ModalViewController 旋转问题

我不太明白为什么会遇到这个问题,但我是……基本上我有一个 Tab 栏控制器,navigationController其中一个选项卡中有一个。在这个特定的选项卡中,我希望用户能够旋转设备并看到完全不同的视图,而不是旋转的原始视图!

为了实现这一点(全屏)LandscapeViewController,当设备处于横向时,我会以模态方式呈现它。当我提出modalViewController…</p>

在中,LandscapeViewController我还检查了方向,以便在用户返回纵向模式时关闭自我。但是,当我展示它时,我收到一个回调,说它正在进入纵向模式,这完全搞砸了!

这是代码和日志语句,以澄清发生了什么..

肖像视图控制器

景观视图控制器

这是日志文本:

常态化景观

2010-08-24 15:29:40.024 应用程序 [32461:207] 提交

2010-08-24 15:29:40.026 应用程序 [32461:207] 模态正在进行中

2010-08-24 15:29:40.026 App[32461:207] 调用代表解散

2010-08-24 15:29:40.027 App[32461:207] 委托调用

正如您在纵向时看到的那样,我通过呈现 来旋转它做正确的事情landscapevc,但随后它认为它是纵向的并试图解雇。

谁能看到我哪里出错了?(并且对此长度表示歉意,但代码的格式将无法正常工作。)

0 投票
1 回答
223 浏览

iphone - ipad 旋转在视图​​中隐藏元素!

好的,这是我开始使用的一个非常基本的 iPad 应用程序,我已经遇到了问题。我一直在做 iphone 应用程序,但也从未实现过轮换的事情。这就是问题所在。这是一个简单的基于视图的应用程序构建,带有界面构建器,如下所示:

替代文字

当我运行应用程序时,垂直方向具有这样的两个元素:

替代文字

但是,当方向变为水平时,应用程序会隐藏顶部的标签..: 替代文字

请提出建议!

0 投票
2 回答
1833 浏览

android - 多个 DatePickers,屏幕旋转时强制关闭

这是我的第一个 Android 应用程序,在此之前我根本没有 Java 知识。

我使用了以下代码(由Adam L.在另一个问题中找到),我有 28 个时间选择器,在稍微更改代码后效果很好。 但是我注意到的一件事是,当我在 timepickerdialog(或使用此处显示的代码时的 datepickerdialog)并更改屏幕方向时,我会强制关闭(nullpointerexception)。 我想我需要使用 onDestroy 保存一些信息并使用 onStart 再次恢复它,但我不知道如何完成此操作。 在我自己的代码中,我使用 timepickerdialogs,但Adam L.的代码更干净,所以解决那里的问题也可以解决我自己的问题。


我认为这是 Eclipse 中 logcat 的有趣部分:

0 投票
1 回答
801 浏览

iphone - 旋转到纵向时,如何使其在两个视图之间交叉溶解?

我有一个我制作的时钟的单独横向视图,我希望它在手机旋转到横向时交叉溶解,然后在它返回纵向时交叉溶解,但是当我以不同的方式尝试这个时,我一直有问题。

关于如何做到这一点的建议?

0 投票
0 回答
175 浏览

iphone - 旋转视图时出现模态对话框的问题

我有一个可以旋转的子视图(不是root,让它成为视图A)。我还有一个模态视图(让它成为视图 M),然后显示一个数据从服务器进来。我们的 QA 发现,如果数据在视图 A 旋转时出现,模态视图 M 将不会显示。实际上,显示模态视图的代码将被执行,应用程序将转到根视图,但用户不会看到模态视图。

模态视图 M 显示为以下代码:

在显示模态视图之前执行到根视图的导航需要延迟。否则,应用程序将因某些内部异常而崩溃。

横向模式下的视图 A 也没有导航栏,并在消失时恢复它(在 viewWillDisappear 中),但在这种情况下导航栏不会出现。

请帮我解决这个问题,因为我不知道如何解决它。