问题标签 [onconfigurationchanged]

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 投票
1 回答
206 浏览

android-activity - Activity.onConfigurationChanged() 和 Application.onConfigurationChanged() 是什么关系?

我注意到有两个具有相同名称和参数的 Android 方法:

我能找到的所有文档(例如处理运行时更改)似乎都引用了 Activity 类中的方法。这两种方法之间有什么关系?例如,如果在 manifest 中指定了一个 Activity 来处理配置更改,那么是否调用了 Activity 的 onConfigurationChange 方法,然后调用 Application 方法,反之亦然?

0 投票
2 回答
4113 浏览

android - onConfigurationChanged 方法是否更改活动生命周期

我是一名安卓初学者。根据 android 应用程序的生命周期,当屏幕方向改变时,会调用以下方法:

但是我现在已经onConfigChanged在我的 XML 文件中添加了。当活动开始时onCreateonStartonResume被调用。但是当我的屏幕方向改变时,只有onConfigurationChanged方法被调用,上面提到的方法没有被调用,如下所示:

截屏

这有什么原因吗?

提前致谢。

0 投票
1 回答
330 浏览

android - 在方向更改时保留不同布局的先前数据

我在一个包含两个布局的活动中有一个片段,分别针对不同的方向显示。

对于纵向,firstLayout

对于横向,secondLayout

两种布局都显示在同一个容器中。

所以我有类似的东西 -

因此,当用户旋转设备(纵向到横向)时,secondLayout会调用布局。当用户在一个布局中再次旋转设备时,secondLayout片段的另一个布局,即布局firstLayout被调回。

问题是——

布局firstLayout需要很长时间才能重新加载,就好像应用程序挂了一段时间一样,因为它在onCreate().

既然如此,我希望firstLayout在不调用onCreate()片段的情况下调用布局。

所以我就这么做了——

然后onConfigurationChanged(Configuration newConfig)通过膨胀我的布局来覆盖该方法firstLayout。但是这样做我丢失了我以前的数据。

我还听说setRetainState(true)要使用来保留以前的状态,但我不确定如何使用它来获取有关方向变化的先前数据。

firstLayout当用户单击后退按钮(例如)时,以更快的方式显示方向更改布局的最佳方式是什么?

0 投票
2 回答
1090 浏览

android - 如果方向改变,改变布局,按钮错误

我用onConfigurationChanged方法知道方向何时改变。但是,当我调用其他布局时,按钮不起作用。

这是我的代码:

介绍页.java

我写android:configChanges="orientation|screenSize"在我的清单 xml 中。请有人帮助我......我可以用按钮不工作做什么?

0 投票
5 回答
14837 浏览

android - Android Layout land not working

I've been looking at issues in stackoverflow and I've tried everything I've seen but the layout-land not work. In my code I have and the method onConfigurationChanged

And the manifest file:

I tried also to remove in the android manifest entry: configChanges and then the layout land load but the components i have (TextView, scrollbar ...) does not work properly.

Can you help me, please?

0 投票
1 回答
791 浏览

android - 未调用“keyboardHidden|orientation|screenSize”onConfigurationChanged

显现:

虽然在我显示或隐藏键盘时从未调用过 onConfigurationChanged,但旋转屏幕。

谁知道为什么?

0 投票
1 回答
2684 浏览

android - 即使清单配置更改,onConfigurationChanged 也不会被调用 - 为什么?

我知道这个问题很糟糕,做了数千次;但说真的,我已经被困了 4 个小时试图解决这个问题。从 2009 年到今天,我进入了每个链接,所有链接都给出了相同的解决方案(**** 知道为什么)不适用于我的案例。

这是我清单中的活动:

我正在使用 SDK 4.0 或更高版本:

这是我的课:

当我像这样运行我的应用程序时,我可以在纵向模式下看到,工作正常。如果我android:screenOrientation="landscape"在清单上使用,我可以看到在横向模式下强制。这意味着我的布局很好,但为什么我onConfigurationChanged在尝试旋转屏幕时没有被调用?我错过了什么?

编辑:

AVD 配置:

在此处输入图像描述

启用自动旋转: 在此处输入图像描述

视频原样: 在此处输入图像描述 我的 logcat 上没有输出。

0 投票
2 回答
4029 浏览

android - Android - 将手机锁定为纵向,但允许平板电脑同时为横向和纵向

我正在尝试编写一个应用程序,我希望将手机锁定为纵向,但允许平板电脑版本同时具有横向和纵向。

我根据以下所有问题创建了一些几乎可以工作的东西......

如何锁定手机的屏幕方向,而不是平板电脑?(Android) 如何只允许平板电脑的横向/纵向 手机纵向,平板电脑横向(Android-Layout) 横向模式仅在平板电脑 中锁定手机在纵向模式

到目前为止,我所做的是将 Activity 扩展到我自己的基本 Activity 并在 onCreate 和覆盖的 onConfigurationChanged 中包含方向更改代码

一切正常(我覆盖了 onConfigurationChanged 以避免活动被破坏和重新创建,这会导致黑屏一秒钟)。

我的主要问题是,如果您以横向方式握住手机,那么活动仍然是纵向的……完美!但是,因为手机是实际的横向布局,所以使用横向布局,这是来自平板电脑的布局。

我的理解是,当调用setRequestedOrientation时,它应该立即触发onConfigurationChanged,但是,首先调用片段,然后布局错误膨胀,然后再调用onConfigurationChanged,这意味着已经设置了横向布局。

我知道我可以根据配置在每个活动中设置布局,但我真的不想这样做。

那么如何让应用程序根据 setRequestedOrientation 使用适当 res 文件夹中的适当布局文件。

谢谢

0 投票
0 回答
1314 浏览

java - 为什么我的方向变化没有被注意到?

根据此处接受的答案,我将此代码添加到活动中,作为我希望成为更改活动分配布局的第一步:

...并在 AndroidManifest.xml 中修改了 Activity 的元素。例如,从这里改变它:

...变成这样:

(我添加了“configChanges”爵士乐)。

但是,虽然 mashing keypad.9 确实在模拟器中翻转了方向,但没有引发吐司(onConfigurationChanged() 的“if”行上的断点没有被命中)。我做错了什么或遗漏了什么?

注意:当我从 AndroidManifest 中的“configChanges”行中删除“|keyboardHidden”时没有任何区别(这只是一种预感——我想知道这是否意味着“不注意通过键盘进行的方向更改”)。

更新

我尝试了 araut 的建议,以及 Jared Burrows 的建议但没有一个适合我。

冷这简直是模拟器的问题?我还没有设备来测试它,所以我自己无法凭经验回答这个问题。

更新 2

根据我在这里读到的内容,我想也许添加一些 OrientationEventListener 爵士乐可以解决这个难题,但不是!

这是我添加的代码(在上下文中显示;新的是 OrientationEventListener 的东西):

...但我仍然没有反应(没有从这里或 onConfigurationChanged() 事件引发敬酒)。

0 投票
1 回答
1570 浏览

android - 以编程方式设置方向但也监听方向变化?

是否可以设置活动的方向,但也可以使用 onConfigurationChanged() 监听方向变化?在我的活动中,我想在用户将手机旋转到横向位置时启动另一个活动,并在手机旋转回纵向时返回该活动。我可以听到的唯一方法是,如果我没有在清单中使用 setRequestedOrientation() 或 android:orientation 明确设置为纵向或横向。

如果无法设置方向但还要监听旋转变化,我该如何手动防止操作系统在配置更改时旋转我的视图?