禁用Android上的屏幕旋转

禁用Android上的屏幕旋转,android,screen-orientation,Android,Screen Orientation,当我按下按钮时,我想在我的所有活动中禁用屏幕旋转。我该怎么做 顺便说一句,当用户单击按钮时,手机可以位于横向或纵向位置。您可以将AndroidManifest.xml更改为 <activity android:name="MainActivity" android:configChanges="orientation"> 设置请求方向(ActivityInfo.SCREEN\u ORIENTATION\u横向); setRequestedOrientation(ActivityIn

当我按下按钮时,我想在我的所有活动中禁用屏幕旋转。我该怎么做


顺便说一句,当用户单击按钮时,手机可以位于横向或纵向位置。

您可以将AndroidManifest.xml更改为

<activity android:name="MainActivity" android:configChanges="orientation">
设置请求方向(ActivityInfo.SCREEN\u ORIENTATION\u横向);

setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u Picture)

我找到了解决方案:

在manifest.xml中:

 <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:name="MyApplication">

我在清单中绑定了以下内容:1)在AboutActivity中:2)在AboutActivity中:@Override public void onConfigurationChanged(Configuration newConfig){newConfig.orientation=Configuration.orientation\u横向;super.onConfigurationChanged(newConfig);}但无论如何,当设备旋转时,活动的屏幕会旋转。我做错了什么?您也可以调用super.onConfiguration changes()来更改方向,从而旋转屏幕。使用if结构确定方向/键盘状态是否已更改;您应该只在其他更改时调用super。您是否调用super并不重要。此回调时已发生配置更改;调用它只是为了告诉您这一点。我似乎记得,如果您不调用
super
(即使对于此方法,它没有特别的效果),框架会抛出一个异常。如果我添加这一行,它是否适用于所有应用程序?或者它对活动有效?它似乎只对活动有效,我调用此代码,直到我移动到另一个活动(当我返回此活动时,应用了defalut设置)。。我认为在onResume/onsatt方法中为所有活动调用这样的代码(检查,如果需要,我们是否应该旋转屏幕)是不好的做法。我已经在活动级别尝试过这种方法,它可以将内部方向跟踪设置为您设置的任何值,但就实际停止方向改变或能够物理设置方向而言,它似乎不起作用。
public class UPackingListApplication extends Application {

    public void onConfigurationChanged(Configuration newConfig) {
        newConfig.orientation = [orientation we wanna to use (according to ActivityInfo class)];
        super.onConfigurationChanged(newConfig);
    }


}