问题标签 [orientation-changes]

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 投票
5 回答
1623 浏览

android - 方向更改时应用程序崩溃(就在我为纵向和横向模式设置 2 个不同的背景时)

我使用 JPG 背景作为我活动的根视图,并将其放在drawable文件夹中。一切都很好,直到我决定为纵向和横向使用 2 种不同的壁纸。所以,我把第二张壁纸放在drawable-land文件夹里。

现在的问题是:当我在真实设备上测试应用程序时,每次我改变方向两次(从纵向到横向,然后从横向到纵向),应用程序崩溃并且我看到一个 loooooong 错误日志,关于OutOfMemoryException

似乎加载另一个可绘制对象的成本太高了,但我已经看到许多应用程序使用大而多样的图形和壁纸并且没有问题。那么,如何防止这种内存泄漏并帮助 android 回收/销毁以前的背景可绘制对象以避免 OutOfMemory?!

如果重要的话,我的手机屏幕和壁纸都有高清(720p)分辨率,两个壁纸(港口和陆地)的大小约为 100 KB。

编辑:我尝试了第一个答案并在我的代码中对其进行了修改,因为我有一个ScrollView作为根视图并且壁纸设置为其背景可绘制。

但事情变得最糟糕,我NullPointerException在代码中指定的行上进行了第一次方向更改。

另一件事是为什么需要分配 16 MB 内存来创建高清位图?!我认为 1280 像素 x 800 像素 x 8(字节/像素)= 8 MB 那么为什么需要 16 MB?!(我指的是 LogCat 的第一行,它说“在 16384016 字节分配上内存不足。”和 16384016 字节 ~ 16 MB。

0 投票
1 回答
297 浏览

android - Android 3.2 摩托罗拉 Xoom 方向更改

我想根据设备有 2 种不同的方向模式 - 如果设备屏幕是 Extra Large ,方向应该是LANDSCAPE,如果设备屏幕更小,方向应该是PORTRAIT

我做了以下检查:

活动的清单条目是:

它在手机上运行良好,但在装有 Android 3.2 的摩托罗拉 Xoom 平板电脑上无法正常运行。

如果我们假设平板电脑处于纵向模式,则会发生以下一系列动作:

  1. Activity 以纵向模式创建和显示 - 这会在视觉上显示半秒
  2. Activity 在横向模式下被销毁并重新创建。

问题在于,平板电脑当前物理持有的方向总是存在中间转换,然后以所需的方向重新创建活动。

感谢您提供有关该问题的任何信息或建议,如果您需要更多详细信息,请告诉我。

isXLarge() 方法正确返回显示的类型

0 投票
10 回答
27686 浏览

javascript - 方向更改后的移动视口高度

我正在为orientationchange事件附加一个侦听器:

我需要在orientationchange. 但是,该事件在轮换完成之前触发。因此,记录的高度反映了实际方向变化之前的状态。

如何注册一个事件以允许我在方向更改完成后捕获元素尺寸?

0 投票
2 回答
344 浏览

uipopovercontroller - 发生方向更改时出现 Ti.UI.iPad.createPopover 大小问题

伙计们,我在“方向更改”上遇到“如何调整大小”弹出框的问题。请拿Demo source-code

执行以下步骤以重新生成问题:

  • 下载随附的源代码,打开并运行它。:)

    => 你会看到一个白色的窗口,在窗口的顶部中间只有一个未命名的按钮。

  • 点击按钮。

    => 它将从按钮打开 Popover 控件。它包含一个空白的 Tableview。

  • 从纵向 <-> 横向更改 iPad 方向。

    => 检查方向改变时,弹出框大小正在改变,但内部内容(表格视图)的大小没有改变。所以,它会在 Tableview 周围留下蓝色的空白部分。

请让我知道是否有任何方法可以治疗 Popovers 并赢得他们的心。

谢谢。

0 投票
2 回答
456 浏览

android - 更改方向时 Android 中的 ViewPagerIndicator 出现问题

我已经实现了Jake Wharton 的ViewPagerIndicator。在这里,我在方向改变时重新加载数据。

在横向中,我有 6 页,并且已滚动到最后一页。结果在这里 这里

现在,我已将方向更改为纵向。现在肖像只有4页。但是,结果就在这里。

在此处输入图像描述

此处的指示器已从可用项目中消失。

但是,选择的页面是 1。

如何解决这个问题?我使用了以下行

circlePageIndicator.setCurrentItem(0);

即使那样它也不起作用?

0 投票
3 回答
4359 浏览

android - 即使在操作系统中禁用了屏幕旋转,我的 Android 应用也会旋转。我怎样才能解决这个问题?

我正在开发一个完全支持横向模式的 Android 应用程序。我的所有活动都在清单中设置了以下属性:

但是,如果我在手机的屏幕设置中禁用旋转,当手机旋转时,我的应用程序仍然会旋转。这种困扰我;如果系统级设置可以被单个应用程序覆盖,那么它的全部意义似乎是没有意义的。如果手机上启用了屏幕旋转,我该如何解决这个问题,使其遵循系统级设置,同时仍能正常运行?

0 投票
8 回答
9583 浏览

ios - iOS CAlayer 方向 AVCaptureVideoPreviewLayer 不旋转

在此处输入图像描述 摘要: 我无法强制 CALayer 正确响应方向变化。每当我尝试使用 cgaffinetransform 时,我都会得到奇怪的结果(图层未居中)。任何帮助将不胜感激!谢谢,

过程 我正在使用 AVCaptureVideoPreviewLayer 子类添加视频预览。当设备处于纵向时,一切看起来都很好。当设备旋转到横向(左或右)或纵向倒置时会出现问题。

我正在使用 AVCaptureVideoPreviewLayer 子类添加视频预览。当设备处于纵向时,一切看起来都很好。当设备旋转到横向(左或右)或纵向倒置时会出现问题。

我正在使用以下代码添加预览层:

并且在纵向模式下正确显示。当我尝试旋转设备时,预览层的行为很奇怪。它似乎没有自行调整大小,也没有正确旋转。

我尝试通过添加以下方法来修复它

}

添加上面的方法后,我可以看到一个进度。现在图层可以正确旋转以反映当前设备方向,并且可以在横向模式下正确显示,但不能在纵向模式下显示。

图层定位不正确,不在屏幕中心(看截图)。要查看发生了什么,我添加了以下调试语句:

并得到以下输出:

2012-09-30 RotatePreviewLayer[2776:907] 1024.000000 768.000000 128.000000 -128.000000

注意调试输出的第二行。预览层的框架移动了128,-128。谁能解释一下为什么会发生这种情况以及如何解决预览层的方向问题?谢谢你,亚努斯

0 投票
2 回答
2288 浏览

html - ios6 Safari 在方向更改时出现错误有占位符文本

我在移动 safari iOS6 上有一个错误,只有在方向改变时布局向左移动 - 从纵向到横向再返回。

仅当占位符属性中有内容时才会存在该错误,如果您删除占位符属性的内容,则方向更改不会出现错误。我在http://beta.9eggs.com/ios6.html设置了一个演示,您可以在其中切换输入占位符的内容并添加删除错误。

我已经看到解决布局问题的解决方案,但想了解占位符导致问题的原因并修复它 - 而不是包含布局。

0 投票
5 回答
11988 浏览

android - 方向更改时的 DialogFragment 回调

我正在迁移当前使用的对话框,Activity.showDialog(DIALOG_ID);以使用 android 参考DialogFragment中讨论的系统。

在我的开发过程中,使用回调将某些事件传递回打开对话框的活动/片段时出现了一个问题:

这是一个简单对话框的一些示例代码:

这是一些调用它的活动代码:

代码几乎就是您看到的参考。问题是,一旦您进行方向更改,当显示一个对话框时,它就会停止按预期工作-->由于活动生命周期,活动和对话框都被重建,对话框现在没有正确的参考新的重建活动。

我在我的活动 onResume 方法中添加了以下代码:

这样做,我得到了预期的行为,当方向改变发生时,对话框将事件发送回新的重建活动。

我的问题是:在方向更改期间处理由 FragmentActivity 打开的 DialogFragment 之间的回调的“最佳实践”是什么?

最好的祝福

0 投票
1 回答
592 浏览

android-spinner - 在方向更改时处理微调器 - android

我的活动中有微调器。单击微调器时,将显示下拉菜单。现在,改变方向。不维护该下拉列表。有没有办法在方向更改时再次显示下拉菜单?

提前致谢。