问题标签 [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.
android-activity - Activity.onConfigurationChanged() 和 Application.onConfigurationChanged() 是什么关系?
我注意到有两个具有相同名称和参数的 Android 方法:
我能找到的所有文档(例如处理运行时更改)似乎都引用了 Activity 类中的方法。这两种方法之间有什么关系?例如,如果在 manifest 中指定了一个 Activity 来处理配置更改,那么是否调用了 Activity 的 onConfigurationChange 方法,然后调用 Application 方法,反之亦然?
android - onConfigurationChanged 方法是否更改活动生命周期
我是一名安卓初学者。根据 android 应用程序的生命周期,当屏幕方向改变时,会调用以下方法:
但是我现在已经onConfigChanged
在我的 XML 文件中添加了。当活动开始时onCreate
,onStart
和onResume
被调用。但是当我的屏幕方向改变时,只有onConfigurationChanged
方法被调用,上面提到的方法没有被调用,如下所示:
这有什么原因吗?
提前致谢。
android - 在方向更改时保留不同布局的先前数据
我在一个包含两个布局的活动中有一个片段,分别针对不同的方向显示。
对于纵向,firstLayout。
对于横向,secondLayout。
两种布局都显示在同一个容器中。
所以我有类似的东西 -
因此,当用户旋转设备(纵向到横向)时,secondLayout
会调用布局。当用户在一个布局中再次旋转设备时,secondLayout
片段的另一个布局,即布局firstLayout
被调回。
问题是——
布局firstLayout
需要很长时间才能重新加载,就好像应用程序挂了一段时间一样,因为它在onCreate()
.
既然如此,我希望firstLayout
在不调用onCreate()
片段的情况下调用布局。
所以我就这么做了——
然后onConfigurationChanged(Configuration newConfig)
通过膨胀我的布局来覆盖该方法firstLayout
。但是这样做我丢失了我以前的数据。
我还听说setRetainState(true)
要使用来保留以前的状态,但我不确定如何使用它来获取有关方向变化的先前数据。
firstLayout
当用户单击后退按钮(例如)时,以更快的方式显示方向更改布局的最佳方式是什么?
android - 如果方向改变,改变布局,按钮错误
我用onConfigurationChanged
方法知道方向何时改变。但是,当我调用其他布局时,按钮不起作用。
这是我的代码:
介绍页.java
我写android:configChanges="orientation|screenSize"
在我的清单 xml 中。请有人帮助我......我可以用按钮不工作做什么?
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?
android - 未调用“keyboardHidden|orientation|screenSize”onConfigurationChanged
显现:
虽然在我显示或隐藏键盘时从未调用过 onConfigurationChanged,但旋转屏幕。
谁知道为什么?
android - 即使清单配置更改,onConfigurationChanged 也不会被调用 - 为什么?
我知道这个问题很糟糕,做了数千次;但说真的,我已经被困了 4 个小时试图解决这个问题。从 2009 年到今天,我进入了每个链接,所有链接都给出了相同的解决方案(**** 知道为什么)不适用于我的案例。
这是我清单中的活动:
我正在使用 SDK 4.0 或更高版本:
这是我的课:
当我像这样运行我的应用程序时,我可以在纵向模式下看到,工作正常。如果我android:screenOrientation="landscape"
在清单上使用,我可以看到在横向模式下强制。这意味着我的布局很好,但为什么我onConfigurationChanged
在尝试旋转屏幕时没有被调用?我错过了什么?
编辑:
AVD 配置:
启用自动旋转:
视频原样:
我的 logcat 上没有输出。
android - Android - 将手机锁定为纵向,但允许平板电脑同时为横向和纵向
我正在尝试编写一个应用程序,我希望将手机锁定为纵向,但允许平板电脑版本同时具有横向和纵向。
我根据以下所有问题创建了一些几乎可以工作的东西......
如何锁定手机的屏幕方向,而不是平板电脑?(Android) 如何只允许平板电脑的横向/纵向 手机纵向,平板电脑横向(Android-Layout) 横向模式仅在平板电脑 中锁定手机在纵向模式
到目前为止,我所做的是将 Activity 扩展到我自己的基本 Activity 并在 onCreate 和覆盖的 onConfigurationChanged 中包含方向更改代码
一切正常(我覆盖了 onConfigurationChanged 以避免活动被破坏和重新创建,这会导致黑屏一秒钟)。
我的主要问题是,如果您以横向方式握住手机,那么活动仍然是纵向的……完美!但是,因为手机是实际的横向布局,所以使用横向布局,这是来自平板电脑的布局。
我的理解是,当调用setRequestedOrientation时,它应该立即触发onConfigurationChanged,但是,首先调用片段,然后布局错误膨胀,然后再调用onConfigurationChanged,这意味着已经设置了横向布局。
我知道我可以根据配置在每个活动中设置布局,但我真的不想这样做。
那么如何让应用程序根据 setRequestedOrientation 使用适当 res 文件夹中的适当布局文件。
谢谢
java - 为什么我的方向变化没有被注意到?
根据此处接受的答案,我将此代码添加到活动中,作为我希望成为更改活动分配布局的第一步:
...并在 AndroidManifest.xml 中修改了 Activity 的元素。例如,从这里改变它:
...变成这样:
(我添加了“configChanges”爵士乐)。
但是,虽然 mashing keypad.9 确实在模拟器中翻转了方向,但没有引发吐司(onConfigurationChanged() 的“if”行上的断点没有被命中)。我做错了什么或遗漏了什么?
注意:当我从 AndroidManifest 中的“configChanges”行中删除“|keyboardHidden”时没有任何区别(这只是一种预感——我想知道这是否意味着“不注意通过键盘进行的方向更改”)。
更新
我尝试了 araut 的建议,以及 Jared Burrows 的建议,但没有一个适合我。
冷这简直是模拟器的问题?我还没有设备来测试它,所以我自己无法凭经验回答这个问题。
更新 2
根据我在这里读到的内容,我想也许添加一些 OrientationEventListener 爵士乐可以解决这个难题,但不是!
这是我添加的代码(在上下文中显示;新的是 OrientationEventListener 的东西):
...但我仍然没有反应(没有从这里或 onConfigurationChanged() 事件引发敬酒)。
android - 以编程方式设置方向但也监听方向变化?
是否可以设置活动的方向,但也可以使用 onConfigurationChanged() 监听方向变化?在我的活动中,我想在用户将手机旋转到横向位置时启动另一个活动,并在手机旋转回纵向时返回该活动。我可以听到的唯一方法是,如果我没有在清单中使用 setRequestedOrientation() 或 android:orientation 明确设置为纵向或横向。
如果无法设置方向但还要监听旋转变化,我该如何手动防止操作系统在配置更改时旋转我的视图?