猿问

如何禁用Android上的方向更改?

我有一个只想在纵向模式中使用的应用程序,所以我在清单XML中定义了Android:屏幕导向=“纵向”。这对HTC魔术手机(并防止其他手机方向的改变)。

但我有个问题HTC G1我打开硬件的时候打电话QWERTY键盘(不是虚拟键盘)。我的活动保持在纵向模式,但它似乎重新启动,并失去了它的所有状态。不发生这种情况。HTC英雄版本。

我的应用程序很大,所以我不希望它在打开键盘时重新启动并丢失它的所有状态。我怎么才能阻止呢?

如何禁用Android上的方向更改?

斯蒂芬大帝
浏览 500回答 3
3回答

慕的地6264312

您需要将AndroidManifest.xml修改为导入(前面提到的Ashton),并确保该活动按您希望处理的方式处理onConfigurationChanged事件。它应该是这样的:@Overridepublic void onConfigurationChanged(Configuration newConfig) {     super.onConfigurationChanged(newConfig);     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}

叮当猫咪

如前所述,设置android:configChanges您的活动(在清单文件中)到keyboardHidden|orientation然后:1)覆盖onConfigurationChanged()@Overridepublic void onConfigurationChanged(Configuration newConfig) {     super.onConfigurationChanged(newConfig);     //here you can handle orientation change}2)将这一行添加到活动的onCreate()setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);比增加同一行更好onConfigurationChanged,因为你的应用程序将转向纵向模式,然后回到景观(它只会发生一次,但它是烦人的)。你也可以android:screenOrientation="nosensor"为你的活动(在清单中)。但使用这种方式,您根本无法处理方向更改。
随时随地看视频慕课网APP

相关分类

Android
我要回答