Android屏幕方向错误
我正在使用android HTC HERO 2.1版本。Android屏幕方向错误
活动我写:
<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.
- >我的意思是,如果你从权力回来,你必须向下滚动才能做所有事情,就像屏幕锁定。
您可以看到屏幕顶部有一个“状态栏”,此时方向为“portrait
”。因此,在将“屏幕锁定”稍微向下滚动后,您可以看到活动(如TEETER)处于“portrait
”状态。当您一直向下滚动时,活动的方向将突然变为“landscape
”状态。
所以结论是:我的活动被迫定位一次。我真的想知道如何解决它!
Hai Steven Shih: 请仔细阅读开发者指南的这个页面。
http://developer.android.com/guide/topics/manifest/activity-element.html
,并尝试这条线
android:windowSoftInputMode="stateUnspecified|adjustPan"
@Steven Shih:Hai Steven Shih你是否试过这个,还是你面临问题 – 2010-10-29 13:40:15
嗨,我试过了。这并不能解决我的问题。 – 2010-10-29 14:51:38
不知道这是否可以被称为一个解决方法,但它是一种变通办法。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus)
setContentView(mGameView);
else
setContentView(mEmptyView);
}
其中mGameView是您的普通内容,而mEmptyView只是一个简单的View对象。该活动仍然会以一帧或两帧的纵向绘制,但对用户不可见。
我已经与HTC Hero的和Nexus S.
不知道这是否是同样的问题,但在这里测试的是这样的问题,我有:
- 我强迫方位景观在清单
- 我的活动有两个surfaceviews(相机预览和在它上面的一层)
- 按下电源按钮,回来后,我的观点错了方向一下子
这似乎是同样的问题,另外一个问题:Disable orientation but detect orientation
我认为问题是,一旦你按下电源按钮,锁屏强制方向为纵向。在onConfigurationChanged中,当我按下电源按钮时,我得到一个方向更改,这是意外的,因为我告诉明确锁定方向。事实是,当前面的另一个活动强制定位时,即使他们要求明确定位,其他活动也会收到定位更改的通知。
这里是我的解决方法:
-
中的onPause
- ,断开与removeView的意见(我的应用程序编程方式创建的视图,而不是一个XML布局)中的onResume
- ,首先检查如果方向是一个你请求(getResources()。getConfiguration()。orientation)。如果是这种情况,请重新附加视图(addContentView或其他)。
- 如果方向不是您期望的方向,则调用setRequestedOrientation
- onConfigurationChanged将被调用以告知方向已更改为您请求的方向。此时,您可以使用setContentView重新附加视图。
似乎有点复杂,但是这就是我在我的特定情况下穿过去,因为我的观点是动态创建的,并直接连接到该活动的默认的FrameLayout。也许我因此错过了一些默认行为,但这样我就可以实现我所寻找的反应性。
为什么你在那里android:configChanges =“orientation”?如果您的活动固定为一个方向,则不需要它。但是对于你的问题,我不知道 - 你是否也在其他设备上或者在模拟器上进行了测试,是否也出现了问题? – 2010-10-29 08:26:52
这是为了“不让我的活动死亡,重新开始”。 – 2010-10-29 15:13:44