为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

斯蒂芬大帝 2019-06-17 17:03:32
我有一个只想在纵向模式中使用的应用程序,所以我在清单XML中定义了Android:屏幕导向=“纵向”。这对HTC魔术手机(并防止其他手机方向的改变)。但我有个问题HTC G1我打开硬件的时候打电话QWERTY键盘(不是虚拟键盘)。我的活动保持在纵向模式,但它似乎重新启动,并失去了它的所有状态。不发生这种情况。HTC英雄版本。我的应用程序很大,所以我不希望它在打开键盘时重新启动并丢失它的所有状态。我怎么才能阻止呢?如何禁用Android上的方向更改?
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您需要将AndroidManifest.xml修改为导入(前面提到的Ashton),并确保该活动按您希望处理的方式处理onConfigurationChanged事件。它应该是这样的:

@Overridepublic void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}


查看完整回答
反对 回复 2019-06-17
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

如前所述,设置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"为你的活动(在清单中)。使用这种方式,您根本无法处理方向更改。


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 499 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信