问题标签 [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 回答
14348 浏览

android - Android:高效的屏幕旋转处理

在 Android 中,当屏幕方向发生变化(横向和纵向之间)时,onCreate调用该方法,如果处理不当,当结果过于简单地改变布局并保留所有相同信息时,将重新创建整个活动。

我知道解决这个问题的几种方法,但我对最有效的方法感兴趣。

1)告诉清单我将通过覆盖该onConfigurationChanged()方法并将其留空来处理方向更改。

2)覆盖onSaveInstanceState()并保存此处的数据以重新填充onCreate()

3)覆盖onPause()将创建数据包并将其发送到onSaveInstanceState()

显然,这些都是选项,但是哪一个是更好的做法(小、中、大量数据)

谢谢

0 投票
7 回答
13914 浏览

android - 获取手机方向,但将屏幕方向固定为纵向

我想获得手机方向,但将屏幕方向保持为纵向。因此,无论用户将手机切换为横向还是纵向,视图都保持不变,但我可以得到它是横向还是纵向。

将活动设置为android:screenOrientation="portrait"将解决这两个问题,但我无法通过以下方式检测手机方向

有谁知道如何解决这个问题?

0 投票
0 回答
2509 浏览

android - 如何检测 Android 中片段的方向变化?

我正在开发一个 Android 应用程序,该应用程序具有一个活动和该活动的许多片段。我想检查和更改众多片段中只有两个片段的方向。

我该怎么做呢?我只希望这两个片段改变它们的方向,而不是全部。我开始知道我们必须为此使用 OrientationEventListener,但我不知道如何使用它。

我正在开发移动设备应用程序以及 Android 2.2 和片段支持文件。

我浏览了以下链接,但没有提及片段: thisthis

0 投票
2 回答
1067 浏览

iphone - sencha touch :: 如何抑制方向变化

在 iOS 上的我的 sencha-tpuch / phonegap 应用程序中,我希望我的应用程序不要改变其使用的设备的方向。我怎样才能抑制 sencha-touch 中的方向变化,或者我会完全覆盖什么?谢谢!

0 投票
0 回答
663 浏览

android - 方向更改后重新聚焦到对话框中的视图

我正在使用One Gulli Bulls 屏幕方向更改 - 保存焦点示例以在方向更改时重新获得焦点。

我的活动AddGearbox并打开一个对话框CustomizeDialog(带有 的活动theme.dialog)。

该对话框有一些文本框。在onSaveInstanceState我保存我需要的东西并且能够在restoreDialog. 但是焦点没有恢复。

我正在记录方向更改时具有焦点的视图的 ID,但我猜该视图是在显示对话框的活动中,而不是在对话框本身中?

该怎么办?

添加齿轮箱.java

CustomizeDialog.java

0 投票
1 回答
550 浏览

android - 您在 onConfigurationChanged 中使用与 onCreate 中相同的方法吗?

假设onCreate看起来像这样

是否onConfigurationChanged

  • 必须看起来相同(见下文),
  • 我不必使用任何onCreate方法或
  • 我遗漏了什么?

这是另一种方法。

0 投票
4 回答
1071 浏览

android - 我第一次从另一个活动返回时没有调用 onConfigurationChanged

我有以下问题:当我将手机从纵向更改为横向时,我想要消失的图像。当我正在进行当前活动并移动方向时,它工作得非常好。如果我去参加另一项活动并回来,它也完全可以正常工作。但问题是,在我返回主页面后,第一次更改方向时不会调用 onConfigurationChanged()。当我返回时,图像将显示/不正确显示,但是当我在返回后第一次更改方向时,不会调用 onConfigurationChanged() 并且图像将保留/不保留,直到我第二次更改方向。你们的任何帮助将不胜感激!这是我的代码的几个部分。我已经在清单中放置了 configChange-orientation 权限,所以这不是问题。

谢谢!

0 投票
3 回答
3517 浏览

android - 如何防止在设备方向更改时仅在一段时间内而不是所有时间重新启动活动

在我的活动中,在 oncreate() 中完成了很多处理,例如打开数据库、在 sd 卡上写入文件。但是所有这些繁重的处理只在第一次启动活动时发生一次,而不是在那之后。我正在使用异步任务来实现这一点。

我正在使用以下代码来防止在设备配置更改期间重新启动活动。

我希望在初始设置发生时仅因设备方向更改而禁用活动重启,之后,我想启用活动重启。知道如何实现这一目标吗?

0 投票
1 回答
2177 浏览

android - 方向改变后的第二次活动

我的应用程序在方向更改时有一个奇怪的行为。

正常行为:
当我打开我的应用程序时,我的家庭活动开始了。当我进入下一个活动(画廊)时,它会正常启动(从右到左滑入动画)。当我使用返回键返回时,当前活动(画廊)完成(从左到右滑出动画)。

奇怪的行为:

  • 当我以纵向模式启动应用程序并将方向更改为横向时。然后有类似家庭活动的第二个实例。因为然后在横向模式下按下后退按钮不会像没有方向变化那样关闭应用程序(家庭活动是我的应用程序中的第一个活动),而是从左到右制作滑动动画(比如开始一个新活动)并再次显示家庭活动(但我认为是另一个实例)。再次按下返回按钮将关闭应用程序。
  • 当我在横向模式下启动应用程序并将方向更改为纵向模式时,按下后退按钮会导致从右到左的幻灯片动画(如关闭活动)并再次显示家庭活动。
  • 当我启动应用程序并进行两次方向更改纵向-横向-纵向时,后退按钮会按原样关闭应用程序。

所以就像风景和肖像模式被视为两种不同的活动。

我不使用android:configChanges="orientation|keyboardHidden|screenSize",因此方向更改应遵循正常的 android 活动生命周期并破坏活动的“旧”纵向(或横向)版本。
我的活动继承自FragmentActivity. 我onSaveInstanceState用来传递一个 parceable(它不包含对活动的任何引用)并且我正在使用onRetainCustomNonConfigurationInstance在这里阅读)传递几个AsyncTasks. 但是这些任务中的所有引用(如果有的话)都在onRetainCustomNonConfigurationInstance之后被销毁并恢复(使用新创建的活动)getLastCustomNonConfigurationInstance

任何想法可能导致这种行为?

编辑:
清单文件中的活动声明:
<activity android:name=".activities.smartphone.HomeSmartphone" android:label="@string/app_name"></activity>

HomeSmartphone 扩展 Home
Home 扩展 MyFragmentActivity
MyFragmentActivity 扩展 android.support.v4.app.FragmentActivity

在 MyFragmentActivity 中,我只是通过调用跟踪类的一些静态方法来在 onCreate、onRestart、onStart、onSaveInstanceState、onPause、onResume、onStop、onDestroy 中做一些日志记录/跟踪工作,这些方法只包含对应用程序上下文的引用。不是活动上下文。

Home 是一个由 HomeSmartphone 和 HomeTablet 扩展的抽象类。这两个类只是在不同的布局中进行一些特殊的加载/刷新/初始化。

大多数任务都在抽象的 Home 类中完成。

我希望这有帮助?!

0 投票
2 回答
1537 浏览

android - Android 和方向变化

我有一点 jQuery:

如果您更改设备的方向,它应该会触发警报。在 iOS 中工作。不适用于安卓。为什么?

JSBIN:http: //jsbin.com/esacir

我想也许 Android 不会在身体上触发该事件,所以也尝试了“窗口”:http: //jsbin.com/esacir/3仍然不行。