当进度条在android中旋转时如何停止更改方向

and*_*Guy 14 android screen-orientation orientation-changes progress-bar

我有一个注册屏幕,用户输入所有注册详细信息,当用户点击"注册"按钮时,我显示进度条(进度条开始旋转),然后将用户带到主屏幕.如果用户旋转当进度条旋转时,进度条被取消.我希望方向不会从potrait变为横向,反之亦然,当进度条可见时(意味着它正在旋转).进度条如何停止方向改变旋转?任何帮助将不胜感激.

Lal*_*ani 14

发生这种情况是因为当屏幕方向旋转时,Activity会重新启动.在这种情况下,您可以configChanges在AndroidManifest文件中的标记中添加属性,以停止重新创建活动.

<activity android:name=".Activity_name"
          android:configChanges="orientation|keyboardHidden">
Run Code Online (Sandbox Code Playgroud)

通过,您的方向可以改变进度条的工作方式,也不会因方向改变而停止.

UPDATE

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            setContentView(R.layout.login_landscape);
        }
        else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            setContentView(R.layout.login);         
        }
    }
Run Code Online (Sandbox Code Playgroud)


Pan*_*mar 9

正如解释 在这里,呼吁

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
Run Code Online (Sandbox Code Playgroud)

然后

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Run Code Online (Sandbox Code Playgroud)

在真实的设备上真的像魅力一样!

在仿真器上进行测试时,不要认为它已损坏,ctrl + F11快捷方式始终改变屏幕方向,而不模拟传感器移动.

其他一些参考:

  1. 在Android中以编程方式启用/禁用屏幕旋转
  2. Android子活动和方向锁定

这里是Activityinfo

*****************已编辑********************************

而且我认为你无法在屏幕旋转上处理进度条.我对吗?

因此,您无需停止此解决方案的轮换.您应该处理进度条.这里有一些教程,可用于此目的..

  1. 当进度对话框和后台线程激活时,如何处理屏幕方向更改?
  2. 处理进度对话框和方向更改
  3. Android屏幕方向旋转中的线程和进度对话框
  4. Android Persistent ProgressDialog完成正确

**************编辑2*****************

有些时候,当方向发生变化时,您会丢失数据.所以你可以尝试这些教程

  1. 处理运行时更改
  2. 更快的屏幕方向变化
  3. 处理Android中的方向更改