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

containers - UIPageViewController 在容器视图控制器中的旋转

我有一个包含其他 ViewControllers 的 UIViewController。初始 ViewController 在 vi​​ewDidLoad 中设置:

这个容器控制器已经实现了自动ForwardAppearanceAndRotationMethodsToChildViewControllers来返回YES。它还实现了对非活动视图控制器的手动正向旋转更改

当点击菜单按钮时,我会在 ViewControllers 之间进行转换。

这种过渡适用于我的“普通”视图控制器,并且它们在方向更改后正确显示,即使它们未处于活动状态。但是,其中一个称为 SecondCV 的子视图控制器将UIPageViewController作为子视图控制器。我将UIPageViewControllerDelegateUIPageViewControllerDataSource设置为此 SecondCV 并在pageViewController:spineLocationForInterfaceOrientation 中:我为纵向返回 UIPageViewControllerSpineLocationMin,为横向返回 UIPageViewControllerSpineLocationMid。此 SecondVC 的旋转在其处于活动状态时可以正常工作 - 有两个页面在横向模式下,一个在纵向模式下正确显示。但是当这个 SecondVC 不活动时,旋转是不正确的。即使调用了 pageViewController:spineLocationForInterfaceOrientation:,Portrait 和 Landscape 模式下仍然有一个页面。我正在尝试解决此问题一段时间,但我没有看到任何其他选项。你有任何想法如何解决这个问题吗?

谢谢你。

0 投票
1 回答
1396 浏览

android - Android 在屏幕旋转后从嵌套的 AsyncTask onPostExecute 保存数据

我花了很多时间寻找解决方案并需要帮助。

我的 Android 应用程序 Activity 中有一个嵌套的 AsyncTask,我希望允许用户在处理过程中旋转他的手机,而无需启动新的 AsyncTask。我尝试使用 onRetainNonConfigurationInstance() 和 getLastNonConfigurationInstance()。

我能够保留任务;但是,在旋转之后,它不会将 onPostExecute() 的结果保存到外部类变量中。当然,我尝试过 getter 和 setter。当我在 onPostExecute 中转储变量时,就可以了。但是当我尝试从 onClick 侦听器访问变量时,它为空。

也许代码会让你清楚问题。

}

0 投票
1 回答
1726 浏览

objective-c - presentPopoverFromRect 在旋转时侧向显示弹出框

-我有一个 UIView。
- 这个 UIView 有一个 UIButton,当点击它时会出现一个 UIAlertView。
-在这个 UIAlertView 中,我有另一个 UIButton,当单击它时调用 buttonClicked:
-在这个 buttonClicked: 方法中,我调用 presentPopoverFromRect 并在里面有一个自定义视图。(hourKeyboard 是自定义视图)

在正常人像模式下,这很好用。弹出框出现在按钮的右侧,箭头正确地指向按钮的左侧。

出现了 2 个问题:
1)虽然此弹出框可见,但当您旋转屏幕时,弹出框会稍微不正确地旋转(它不会重新定位它自己的 x 和 y 位置)
2)如果未显示弹出框。如果您旋转屏幕,然后调用“buttonClicked”,弹出框将出现,但是,它显示在按钮上方的侧面,箭头“向下”指向按钮(技术上相对于侧面弹出框视图而言是左侧)。如果你关闭它,旋转屏幕,然后调用“buttonClicked”,弹出框现在出现倒置,按钮指向“右”按钮(同样,技术上相对于侧面弹出框视图而言是左侧)!重复使其再次向侧面,然后再次向右上方。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

我的想法:

1)我相信我可以重新定位 x 和 y,但是,我还读到您应该关闭弹出框并在旋转时再次显示它。我会看看我是否能让第一个工作,但我更关心第二个问题。

2)我不知道如何解决这个轮换问题。似乎当您旋转到横向时,弹出框不可见。然后你调用presentPopoverFromRect,弹出框是用iPad创建的,认为它仍然错误地处于纵向视图中。这就是它给出的行为,但是,我不确定如何让 iPad 不犯这个错误。

-=-=-=-=-=-=-=-=-=

再次感谢您提供的任何帮助!

-=-=-

轻微更新:
1)很容易从旋转的主视图中消除弹出框。这似乎是每个人处理这个问题的一般方式。

2)尝试各种事情,如改变框架,使用 CGAffineTransformMakeRotation 等等......但到目前为止还没有运气

-=-=-

另一个更新:

2)经过大量测试,似乎是UIAlertView的直接问题。如果我将视图放置在 UIAlertView 中(当前正在执行),则 AlertView 不会告诉弹出窗口屏幕已旋转...从而产生问题

看起来解决此问题的唯一方法是完全删除 UIAlertView。我将手动禁用各种背景视图(就像 Alert View 所做的那样),而不是显示 UIAlertView,然后显示一个看起来与 AlertView 非常相似的自定义 UIView。从那里,我应该能够毫无问题地显示弹出窗口。我会让你知道结果如何。

-=-=-=-=-=-=-=-

最终解决方案:

我最终只是创建了自己的视图,并让该视图模仿 UIAlertView。然后当我生成弹出框时,我将它放在根视图控制器中。工作得更好,但需要更多的工作,因为我必须手动创建自己的视图而不是预制的 UIAlertView。无论哪种方式,显然 UIAlertView 都无法告诉 UIPopoverover 子视图它在哪个旋转中。

0 投票
1 回答
687 浏览

iphone - UIScrollview 中的操作表

我有一个全屏 UIScrollView 来显示我的图像。并且滚动视图识别长按手势。长按滚动视图后,会显示一个操作表。如果我将操作表添加到窗口,当我旋转屏幕时它不会旋转。如果我将它添加到滚动视图中,它会在滚动视图被缩放或滚动时旋转但不是那么好。无论滚动视图的滚动和缩放如何,都可以很好地旋转操作表吗?

附言。滚动视图通过“self.view = myScrollView;”直接添加到窗口中

0 投票
2 回答
1169 浏览

android - Android:旋转后保留 Webview 内容

我有一个 WebView,其中包含从本地 javascript 填充的数据(在“资产”文件夹中)。WebView 需要几秒钟才能加载,所以我想让它保持设备旋转。我不想使用 configChanges 因为它有一些其他附带影响。

在我看来,最好的方法是从 WebView 制作图片并在旋转时加载图片而不是 WebView,但我不知道如何。

这是我尝试过的代码:

但这仅显示一个空白视图。

“pictureNightDay”以前是用

谢谢,再见毛里齐奥

0 投票
2 回答
1704 浏览

android - Android:Webview 不会在旋转时调整大小(ICS)

我的布局中有一个简单的 WebView,具有以下设置

在我的清单中,我将包含活动设置为

我的 Webview 在设备上填充了一个简单的 HTML 文件,效果很好。问题是,当我将设备从纵向旋转到横向时,webview 会变得更高,在我的布局中将其下方的任何内容推到更下方。内容的数量不会改变 - 它全部在 OnCreate() 中设置。

我正在使用 Webview 使用它自己的特殊样式表来呈现内容,并且它必须保留在 ScrollView 中。

如果需要,我可以提供更多信息:)

0 投票
3 回答
10160 浏览

android - Android 方向更改

我有一个简单的Activity调用SingleTouchTest来理解屏幕触摸。奇怪的是,它SingleTouchTest以我所处的任何方向开始,但旋转设备不会导致屏幕旋转。

我的测试设备是运行 Android 4.0.3 的 Acer A100。

mainActivity包含一个ListView导航到我的测试Activityes,包括SingleTouchTest. SingleTouchTest除了旋转之外,我可以毫无问题地运行(下面的完整代码)。在AndroidManifest.xml(下面的完整代码)中,我尝试了每种组合

android:configChanges="keyboard|keyboardHidden|orientation" android:screenOrientation="unspecified"

它不会自动旋转。我什至删除了该onConfigurationChanged()方法SingleTouchTest,但没有任何反应。

完整代码AndroidManifest.xml

完整代码SingleTouchTest

0 投票
1 回答
2505 浏览

android - 动态壁纸屏幕旋转

我目前正在制作一个非常密集且不能很好地处理屏幕旋转的动态壁纸。

事实上,没有调用 onSurfaceChanged,壁纸被破坏并显示空白屏幕!

这是我在 onSurfaceChanged 方法中的内容:

我很肯定这个方法不会被调用,因为没有日志消息。

为什么会发生这种情况以及处理屏幕旋转的一些技术是什么?莫非我的动态壁纸密集到无法呼唤?

此外,onVisibilityChanged 也没有被调用,当我在模拟器上打开应用程序时,没有日志消息:

0 投票
1 回答
1239 浏览

android - RE: Live Wallpaper Screen Rotation

I recently posted a question about screen rotation in my live wallpaper. To test why I was having these problems, I created the simple program below:

}

And when I rotate my wallpaper, I am greeted with a blank screen. Does anyone know what is wrong with my code?

When I run the wallpaper, I get these errors in logcat:

What's strange is that I get a force stop message in logcat but not on the emulator when I set my wallpaper.

0 投票
3 回答
2765 浏览

android - 隐藏的 backstack 片段在配置更改时重新显示

我正在构建一个活动多片段应用程序。每次交易后我都会添加到后台。经过几次隐藏和显示片段,然后我旋转手机,添加到容器中的所有片段都恢复了,每个片段都在另一个之上。

可能是什么问题?为什么我的活动会显示我之前隐藏的片段?

我正在考虑隐藏所有以前隐藏现在显示的片段,但有没有更“优雅”的方式来做到这一点?