今天早上我想出了一个试图处理这个onConfigurationChanged
事件的问题.问题是当我改变手机的方向时,我覆盖的方法没有被调用.根本没有被召唤.
我已经android:configChanges="orientation"
在android文档中提到了清单中定义的活动,但这没有什么区别.
你有没有想出这个问题?
nmr*_*nmr 248
对于同样的问题,这是我的问题:
注意:从Android 3.2(API级别13)开始,当设备在纵向和横向之间切换时,"屏幕大小"也会更改.因此,如果要在开发API级别13或更高级别(由minSdkVersion和targetSdkVersion属性声明)时由于方向更改而阻止运行时重新启动,则除了"orientation"值之外,还必须包含"screenSize"值.也就是说,你必须decalare android:configChanges ="orientation | screenSize".但是,如果您的应用程序的目标是API级别12或更低,那么您的活动始终会自行处理此配置更改(即使在Android 3.2或更高版本的设备上运行,此配置更改也不会重新启动您的活动).
(来自http://developer.android.com/guide/topics/resources/runtime-changes.html)
TL; DR:在定位API级别13+时,将config |添加"| screenSize"添加到configChanges
lbl*_*asa 37
问题是如果你使用这种方法
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)
要强制您Activity
的纵向模式的方向,您不是候选人接收orientation
更改.
因此解决方案是不要setRequestOrientation
采用特定模式.而是使用SCREEN_ORIENTATION_SENSOR.
Cor*_*lla 36
4.0的某些设备不会调用onConfigurationChanged.只需向screenSize添加一个监听器.
android:configChanges="orientation|screenSize"
Run Code Online (Sandbox Code Playgroud)
Dmi*_*ich 28
检查您的设备是否已启用"屏幕旋转"设置
Mac*_*rse 19
android:screenOrientation
在一个Activity
或一个Application
水平.android:configChanges="orientation|keyboardHidden"
.Dam*_*les 17
我花了几十分钟才发现它为什么不起作用.我补充说screenSize
但它仍然没有用.
事实证明,我已添加android:configChanges
到<application>
元素,而不是<activity>
我应该拥有的元素!
嗯,当然,这是我的错误,但我们都知道,我们所有人都花了很多时间来处理这种愚蠢的错误.所以,我正在添加这个答案,万一应该有像我这样的另一个愚蠢的程序员.
Wil*_*iam 14
Macarse凭借他的第二选择获得100%的奖金.
尝试 android:configChanges="orientation|keyboardHidden|screenSize"
我有完全相同的问题,并在1.6模拟器上添加keyboardHidden
原因onConfigurationChanged
在旋转期间调用.删除它,它停止被调用.
我有同样的问题 - 尽管已经在清单文件中,但是onConfigurationChanged
当设备改变方向时没有调用.我使用了这里共享的剪切代码android:configChanges="orientation|keyboardHidden"
Deva
检查是否onConfigurationChanged
被调用.它不是.
经过几个小时的实验,我意识到我在清单文件中有以下几行
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15"/>
Run Code Online (Sandbox Code Playgroud)
并且在改变android:targetSdkVersion="15"
时android:targetSdkVersion="8"
,onConfigurationChanged
开始被召唤.因此,清单的一部分最终看起来像这样
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8"/>
Run Code Online (Sandbox Code Playgroud)
不确定这是最好的地方,但在遇到这个问题时 - 我观察到一些有趣的事情。
如果onConfigurationChanged()侦听器不起作用,则每次更改方向时都会再次调用 onCreate()。
如果onConfigurationChanged()侦听器正在工作,则在方向更改时调用该方法而不是 onCreate()。
归档时间: |
|
查看次数: |
65686 次 |
最近记录: |