我使用的是Android HTC HERO 2.1版本。
我写的活动:
<activity android:name=".gogogo"
android:label="@string/app_name"
android:theme="@style/Theme.mine"
android:screenOrientation="landscape"
android:configChanges="orientation">
让我的方向改变为风景。
然而,我发现每次按下“电源”按钮然后回到我的活动时,它总是以肖像开始。
我尝试了游戏:TEETER,这不是我写的。也有同样的问题,任何人都知道如何解决它?
修改:it always start at portrait.
- &gt;我的意思是,如果你从权力回来,你必须向下滚动来做所有事情,有像屏幕锁定的东西。
您可以看到屏幕顶部有一个“状态栏”,此时方向为“portrait
”。因此,在您稍微向下滚动“屏幕锁定”后,您可以看到活动(例如TEETER)处于“portrait
”状态。当您完全向下滚动时,活动的方向将突然变为“landscape
”状态。
所以结论是:我的活动被迫定位一次。我真的想知道如何解决它!
答案 0 :(得分:1)
Hai Steven Shih: 请阅读开发者指南的这一页。
http://developer.android.com/guide/topics/manifest/activity-element.html
并尝试此行
android:windowSoftInputMode="stateUnspecified|adjustPan"
答案 1 :(得分:1)
不确定是否是同样的问题,但这是我遇到的问题:
这似乎与另一个问题是同一个问题:Disable orientation but detect orientation
我认为问题在于,一旦按下电源按钮,锁定屏幕会将方向强制为纵向。在onConfigurationChanged中,当我按下电源按钮时,我得到一个方向更改,这是意外的,因为我告诉明确锁定方向。事实是,当前面的另一个活动迫使方向时,其他活动会被告知方向改变,即使他们要求明确的方向。
这是我的解决方法:
似乎有点复杂,但这是我在特定情况下必须经历的事情,因为我的视图是动态创建的并且直接附加到活动的默认FrameLayout。也许我因此而错过了一些默认行为,但这样我就可以达到我想要的反应性。
答案 2 :(得分:0)
不确定这是否可以称为修复,但这是一种解决方法。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus)
setContentView(mGameView);
else
setContentView(mEmptyView);
}
其中mGameView是您的普通内容,而mEmptyView只是一个简单的View对象。对于一两帧,活动仍将以纵向绘制,但用户无法看到。
我用HTC Hero和Nexus S进行了测试。