首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android ICS Launcher 4.0.x无法保持屏幕方向

Android ICS Launcher 4.0.x无法保持屏幕方向
EN

Stack Overflow用户
提问于 2012-05-17 10:48:16
回答 2查看 1.7K关注 0票数 17

我有一个关于Android ICS Launcher 4.0.x的奇怪案例。

前提条件:

Android

  • 带有根目录的Android ICS启动程序4.0.3/4源代码(修改和运行)

操作步骤:

进入市场(Play Store),下载"Go任务管理器“并在Launcher上打开

  1. 选项卡,找到"Mem Optimize",拖动到主屏幕screen.
  2. Execute并在"Mem Optimize”小工具旁安装“
    1. ”快捷方式“
    2. ”,并保持手机处于横向(手持此位置,不要更改此位置)“
    3. ”菜单屏幕上的"Fruit Ninja",切片"Exit“,选择"Yes"
    4. Now返回Launcher主屏幕,触摸"Mem Optimize“小部件

当前结果:

  • 在第7步之后,屏幕将旋转到横向,然后返回纵向。

期望值:

  • 在执行完步骤7后,屏幕应保持纵向显示。

我的尝试(修改启动器ICS源码):

  • 添加到"Manifest.xml":android:screenOrientation="portrait" =>仍然无法修复problem.
  • Handle配置更改,android:configChanges="orientation|screenSize" =>仍然无法修复setRequestedScreenOrientation(PORTRAIT) setRequestedScreenOrientation(PORTRAIT) =>仍然无法修复问题。

我尝试的方法在Android2.x上运行良好;然而,在4.0.3+上,不知何故,它并没有像预期的那样工作。有人知道这是怎么回事吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-05 11:47:32

问题不在启动程序中。问题是,电话上的所有活动都共享一个配置(包括方向)。

因此,如果你有一个将方向设置为Landspace的活动,例如相机(这是我工作的经典示例),这将使所有其他活动也在景观上,因为正如我所说的,信息在系统中是唯一的,并且在所有人之间共享。

这在Android诞生之初就发生了,尽管有时你不会注意到这一点,因为变化非常快。

要检查我所说的内容,请执行以下操作。编写一个具有对话主题的活动,比如@android:style/Theme.Holo.Dialog,这样它就不会覆盖整个屏幕,您仍然可以看到下面的活动。该活动必须具有固定的方向。假设您将其设置为景观。然后使用use am start on Android shell,以便能够在任何其他活动之上启动您刚刚创建的活动。您将看到,无论前一个活动的方向如何,只要您启动测试活动,前一个活动将采用与您的测试活动相同的方向。当您回击时,上一个活动将恢复方向。但有时可能需要一段时间,所以您可以看到当前的结果。

票数 1
EN

Stack Overflow用户

发布于 2012-05-27 14:29:07

股票ICS启动器有几个地方,它将设置方向为未指定。只需在Launcher.java上搜索setRequestedOrientation,但具体而言,它要么是在"eng“版本上,要么是在平板电脑上。它在onCreate中完成,但也是在应用程序自定义中拖放之后完成的。

来自Launcher.java的onCreate:

// On large interfaces, we want the screen to auto-rotate based on the current orientation
if (LauncherApplication.isScreenLarge() || Build.TYPE.contentEquals("eng")) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10629226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档