调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)之后,屏幕第二次没有进行漫游

时间:2018-01-19 09:24:27

标签: android android-layout

这个问题可能看起来很相似,但不是那种。

我正在开发一个从互联网上传输视频的Android应用程序,在那里我必须实现全屏按钮,切换屏幕横向(全屏)和肖像。

当我需要去风景时,从纵向模式调用方法setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

但是下次单击按钮而不是调用方法setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);时,屏幕不会以纵向模式返回。

注意:我无法使用两个单独的纵向和横向布局

更新

屏幕旋转按钮的工作原理是

  mScreenRotateButton.setOnClickListener(new OnClickListener() {
   @Override
   void onClick(View v){
        if (inPortrait) {
          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
       } else {
           setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
       }
   }});

当我在物理上旋转设备时执行此操作一次后,屏幕不会旋转。

1 个答案:

答案 0 :(得分:0)

您可以使用布尔值检查状态并恢复原状。这是我使用切换按钮完成的片段。

aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked){
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    }
});