问题标签 [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 投票
2 回答
3150 浏览

iphone - 如何正确处理包含 UIImageViews 的 UIScrollView 的旋转?

我正在开发一个图像查看器,就像照片应用程序一样。

它是一个 UIScrollView,它启用了从 Internet 加载的图像的分页功能,因此我调整了LazyTableImages 示例的部分内容。Scroll View 和其中的每个 ImageView 都设置了它们的所有 autoresize 掩码标志。

当我第一次观察旋转期间如何调整大小时,它看起来不错,但是一旦我开始尝试与滚动视图交互,我意识到我还必须以编程方式更改 contentView 的大小。我通过在我的视图控制器中实现 didRotateFromInterfaceOrientation: 来做到这一点。

当交互行为正常时,我发现,如果我正在查看第二张照片并旋转,第一张和第二张照片的一部分都会显示在屏幕上。我还需要更改 contentOffset。

我尝试通过使用 UIScrollView 的 scrollRectToVisible:animated: 方法以及尝试直接设置 contentOffset 属性来解决这两种方法。我已经通过将此代码放在对方向变化的“一步”和“两步”响应的实现中进行了实验。例如:

但在所有情况下,它看起来都像地狱一样笨拙。要么我清楚地看到滚动发生,要么它只是跳跃。呜呜呜呜呜呜呜!有没有办法做到这一点,使其行为与照片应用程序完全一样?

0 投票
3 回答
1952 浏览

android - Android:完成时窗口泄漏

我已阅读其他窗口泄漏帖子,并尝试了那里的建议无济于事。

我有 3 个活动:A、B 和 C。活动 A 从用户那里收集信息。Activity B 在与另一个线程上的服务器通信时显示一个旋转的 ProgressDialog。当线程完成时,它会关闭 ProgressDialog 并开始下一个活动。活动 C 将来自服务器的信息显示给用户。Activity B 的设置使得当用户从 C 回击时,他们会退回到 A。

这些任务必须在单独的活动中进行,这一点很重要。

到目前为止,应用程序在大多数情况下都成功地完成了它应该做的事情,除了以下情况:如果用户在活动 C 中更改方向,然后返回到活动 A,应用程序由于窗口泄漏而崩溃。

  • 在 istart C 之前,我正在关闭 Activity B 的 onPause() 中的 ProgressDialog。
  • 我尝试使用处理程序以及在单独的线程中关闭主线程上的 ProgressDialog。
  • 当用户不改变 C 中的方向时,不会发生窗口泄漏。

有任何想法吗?TIA

0 投票
1 回答
125 浏览

android - Android,保持视图

我的应用程序包含两部分:网络部分和 GUI。它的工作方式有点像浏览器——用户从服务器请求一些信息,服务器发回一些代表某些视图的数据,然后 GUI 显示它。

现在我已经将网络部分实现为服务,它自己构建和保存所有视图。创建活动时,网络部分将其内容视图设置为最后收到的视图。

这很简单,无需重新创建所有视图层次结构并保存所有状态。

但是有一个问题——我可以在服务上下文中创建视图,我可以在活动启动之间保留它们,当活动被销毁和创建时可以取消绑定和重新绑定视图吗?但有些视图需要 Activity 上下文(例如 Spinner,它会创建弹出对话框)。

那么,有没有办法在创建后更改视图的上下文?

我是 android 编程的新手,所以可能有更好的方法来做到这一点(同样,任务是 - 保持视图层次结构和活动被破坏和重新创建时的所有状态,例如,当屏幕旋转发生时)。

0 投票
2 回答
1940 浏览

android - 钛加速器方向改变不会发生

我对orientationchange钛加速器有疑问。在选项卡之间移动时,orientationchange在纵向和横向之间切换时不会触发该事件。

这是我的代码

以下是复制步骤:

  1. 切换到选项卡 2,然后进入横向模式(出现警报)。
  2. 切换回选项卡 1,将手机旋转到纵向模式(不出现警报)。
  3. 该事件不会发生。(后续事件照常触发(出现警报))

有人对解决方法有想法吗?我需要它,因为我必须改变视图onorientationchange。我正在使用 Titanium Appcelerator 1.2.2,移动版 1.6,Api 2.2

0 投票
4 回答
2515 浏览

android - 键盘在方向更改时隐藏

当 android 手机的方向变为横向时,我的键盘被隐藏。我应该怎么做才能显示我的键盘?

0 投票
3 回答
1202 浏览

javascript - appceleratororientationchange 导航栏图像隐藏/显示

我正在为 iPhone 构建一个带有一些标签的应用程序。在这里改写了appcelerator网站中的问题

当我从纵向更改为横向时,我想隐藏导航栏。

如果我不切换到另一个选项卡,它工作正常。但是,当我以纵向查看 1 个选项卡时,切换到另一个选项卡,更改为横向视图,切换回第一个选项卡,然后更改为纵向,导航栏(window.barImage)全部拉伸(到横向的大小导航栏)

此外,当我删除所有隐藏导航栏的代码时,也会出现同样的问题。

我尝试在orientationchange上再次设置barImage,但这也无济于事。

网站注释:我在导航栏的每个选项卡上都使用相同的图像,这可能是问题吗?显示我的问题的应用程序的纵向视图

我用绿色标记了导航栏图像,蓝色部分是图像通常应该在的位置。

另请注意,图像大小适合导航栏的纵向视图。

代码:

0 投票
1 回答
373 浏览

android - Android:仅在应销毁活动时关闭连接

我有一个在 onCreate 方法中连接服务器的活动。因为即使在我旋转屏幕时连接也必须保持打开状态,所以我将其引用存储到静态变量。

例子:

如果我从 Main 打开另一个活动,则连接必须保持打开状态,但如果我关闭 Main 活动,它应该关闭。

我遇到的问题是我不知道何时/如何关闭连接。如果我在 onDestroy 内关闭它,如果我旋转屏幕,它将被销毁,因为当方向改变时会重新创建活动。如果我在活动焦点上关闭它,它将在我进入下一个活动时关闭。所以......我只想在不需要 Main 活动时关闭它,并且我想永远销毁它。

你会怎么做?谢谢!

0 投票
0 回答
812 浏览

iphone - iPhone SDK UIView drawRect 和方向改变

我已经编写了这段代码... plotView 是通过 drawRect 方法以编程方式绘制的...问题是当我更改设备方向时...所有视图都没有正确缩放... autoresizing mask 有什么问题?我应该玩 setNeedsDisplay 还是类似的?

提前致谢!

}

0 投票
2 回答
7211 浏览

android - 切换方向错误:片段错误 - 重复 ID、标签或父 ID 0x0

我有一个片段SearchPageFragment(代表平板电脑上的主视图),它本身包含两个片段:

一切正常 - 页面加载,一切正常......直到你改变方向。当您执行以下错误时:

以下是切换方向时的调用顺序:

有人知道为什么我的容器片段在方向改变时会被调用两次吗?

0 投票
3 回答
3566 浏览

iphone - 使用 AV Foundation 时旋转 AV 视频预览区域和其他元素

我已经开始使用 UIImagePickerController 来捕获静止图像的项目。我放弃了使用这种简单的机制,因为叠加层和刚刚捕获的图像之间的交互很差。问题如下:如果您有一个覆盖活动,并拍摄照片,刚刚拍摄的图像会旋转以在纵向方向进行方面填充,当用户被呈现使用或重新拍摄图像的选项时。发生这种情况时,无法解除覆盖或旋转覆盖以对应新的静止图像预览方向。不好。

我决定尝试使用 AV Foundation 的各种机制重新实现 UIImagePickerController 的静态图像捕获行为。这非常容易设置,但我仍然有一些挥之不去的问题:

1)我想重新定位机制,使其类似于标准 UIImagePickerController 中的 UI 工作方式。如您所知,在此控制器中,无论手机如何旋转,按钮栏始终固定在纵向的底部。在此按钮栏中,按钮本身的字形会旋转,但其他一切都保持不变。用于闪光灯设置、相机切换和选项的叠加控件确实会重新定向。如何在旋转这些其他元素时让这个标签栏保持固定?有没有办法从旋转中排除某些元素?

2)在进行自动重定向时,我希望 AVVideoCaptureLayer 始终保持活动状态并占据整个屏幕。当设备执行重新定向旋转时,该层的大小会变得奇怪(缩小),并且视频源本身会偏离 90 度。因此,显然这一层正在旋转,但没有旋转到全屏尺寸,并且视频源本身的行为与预期不同。我希望视频保持固定并通过完全旋转占据全屏,向上始终向上,并且在旋转期间不调整预览大小。但我也希望能够像第 1 项中那样,重新定位某些元素。

任何说明如何实现这一点的示例代码都非常感谢。