android设置方向锁定了方向

android设置方向锁定了方向,android,screen-orientation,Android,Screen Orientation,我需要在webview中以正常方向播放嵌入的视频(就像webview一样,如纵向或横向),并在全屏视频中强制进入横向模式。 所以我按照以下步骤做了: 将清单文件中的活动配置更改为android:configChanges=“keyboardHidden | orientation | screenSize” 在WebView的WebChromeClient类中 @Override public void onShowCustomView(View view, CustomView

我需要在webview中以正常方向播放嵌入的视频(就像webview一样,如纵向或横向),并在全屏视频中强制进入横向模式。 所以我按照以下步骤做了:

  • 将清单文件中的活动配置更改为android:configChanges=“keyboardHidden | orientation | screenSize”
  • 在WebView的WebChromeClient类中

        @Override
        public void onShowCustomView(View view, CustomViewCallback callback) {
            LogUtil.d(TAG, "onShowCustomView");
    
            super.onShowCustomView(view, callback);
            mHandler.post(new Runnable(){
    
                @Override
                public void run()
                {
                    Activity activity = getActivity();
                    if(activity == null){
                        return;
                    }
                    activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }
    
            });
        }
    
        @Override
        public void onHideCustomView()
        {
            super.onHideCustomView();
            mHandler.post(new Runnable(){
    
                @Override
                public void run()
                {
                    Activity activity = getActivity();
                    if(activity == null){
                        return;
                    }
                    activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);                        
                }
    
            });
        }
    
  • ;; 完成此操作后,通常效果良好。但它有一个缺点:在全屏播放视频之前,活动/片段可以根据手机方向旋转,但在我从全屏(横向模式)返回嵌入式(纵向模式)后,活动/片段永远不会改变方向。我怎么处理这个案子?我只是想恢复到原始状态,而不是锁定方向。
    谢谢是的,您可以控制屏幕方向。

    在设置方向后添加此行

    setRequestedOrientation(活动信息屏幕方向传感器)

    这不是一个完美的解决方案,但在紧要关头却非常方便


    android:configChanges
    可能非常危险,因为它会阻止操作系统正常清理和重新创建活动。

    您是否尝试过
    setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u SENSOR)?这不是一个完美的解决方案,但在紧要关头却非常方便。另外,
    android:configChanges
    使用起来非常危险。是的,ActivityInfo.SCREEN\u-ORIENTATION\u-SENSOR更合适:)什么叫“危险”?