【问题标题】:Android child activity and orientation lockAndroid 儿童活动和方向锁定
【发布时间】:2011-10-04 22:05:25
【问题描述】:

我已经做了很多搜索和试错测试,试图让我的应用程序在纵向模式下得到修复,但是我在这个问题上遇到了困难。

背景:这个应用程序有一个主要的活动,它显示具有各种过渡效果的静态图像。它使用子活动来显示 MediaPlayer,因为 SurfaceView(显示影片剪辑所需的)削弱了静止图像转换的显示性能。

这两个活动都锁定在纵向模式下,这在大多数情况下似乎运行良好。我的问题是,当子活动完成并且我将设备置于横向位置时,它会暂时切换到横向模式,然后再切换回纵向模式。这样做时,我会看到屏幕上的箭头等,我不希望这样。

这是来自 logcat 的转储:

D/光标 (1357): cursor_rotate 0
I/WindowManagerService(1357):将旋转设置为 0,animFlags=1
I/ActivityManager(1357):配置更改:{ scale=1.0 imsi=0/0 loc=en_US touch=3 keys=1/1/2 nav=1/1 orien=2 layout=35 uiMode=17 seq=1726}
D/main_activity(6851): onActivityResult: 0
D/child_activity(6851):surfaceDestroyed 调用
D/光标 (1357): cursor_rotate 3
I/WindowManagerService(1357):将旋转设置为 3,animFlags=1
I/ActivityManager(1357):配置更改:{ scale=1.0 imsi=0/0 loc=en_US touch=3 keys=1/1/2 nav=1/1 orien=1 layout=35 uiMode=17 seq=1727}
D/StatusBarPolicy(1357): ro.wmt.ui.portrait.hide.capbtn = 1
D/StatusBarPolicy(1357): wm.getRotation = 3
D/StatusBarPolicy(1357): ro.wmt.ui.portrait.hide.capbtn = 1
D/StatusBarPolicy(1357): wm.getRotation = 3

我想看到的唯一两行以粗体显示,其他我想消除的行。有时,切换是无缝的,具体取决于时间,所以我猜可能存在某种竞争条件?

【问题讨论】:

    标签: android screen-orientation


    【解决方案1】:

    你可以在 Android Manifest 上设置这个,就像 answer 建议的那样:

    <activity 
        android:name=".MyActivity" 
        android:screenOrientation="portrait"
        android:configChanges="orientation|keyboardHidden|keyboard"/>`
    

    【讨论】:

    • 见上文。在问这个问题之前我试过了。当子活动完成时,设备会暂时切换到横向模式,然后在父活动重新激活时返回纵向。如果我使用 NOSENSOR,设备被锁定在横向模式,没有任何东西可以将其置于纵向模式。查看操作系统源代码可以确认这一点。
    【解决方案2】:

    您可以在活动中禁用方向更改。我问了一个类似的问题here

    您可以致电:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
    

    禁用方向更改。

    【讨论】:

    • 我试过了。它确实忽略了传感器,但也将显示器锁定为横向模式并忽略了我对纵向模式的请求。
    • 几乎就好像当子活动结束时()'d 有一个关于方向应该是什么的不确定时刻。在销毁子活动期间,短时间内不会考虑任一活动的 Sensor/NoSensor、请求的方向等。
    • 这说明了很多:boundarydevices.com/blogs/…
    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多