Как остановить изменение ориентации, когда индикатор прогресса вращается в андроиде

У меня есть экран регистрации, в котором пользователь вводит все данные регистрации, и когда пользователь нажимает кнопку «Регистрация», я показываю индикатор выполнения (индикатор выполнения начинает вращаться), а затем выводит пользователя на главный экран. Если пользователь поворачивает Телефон, когда индикатор выполнения вращается, индикатор выполнения отклоняется. Я хочу, чтобы ориентация не изменялась от пористого до пейзажа, и наоборот, когда индикатор выполнения отображается (что означает, что он вращается). Как остановить изменение ориентации, когда индикатор выполнения Любая помощь будет оценена.

Solutions Collecting From Web of "Как остановить изменение ориентации, когда индикатор прогресса вращается в андроиде"

Это происходит потому, что, когда ориентация экрана вращается, активность снова перезапускается. В этом случае вы можете добавить атрибут configChanges в свой тег в файле AndroidManifest, чтобы остановить повторное создание Activity.

 <activity android:name=".Activity_name" android:configChanges="orientation|keyboardHidden"> 

Таким образом, ваша ориентация может измениться, будет работать индикатор выполнения, и он не остановится, хотя ориентация изменится.

ОБНОВИТЬ

 @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); } } 

Как поясняется здесь ,

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); 

а потом

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 

Действительно работает как шарм … на реальных устройствах!

Не думайте, что это сломано при тестировании на эмуляторе, ctrl + F11 ярлык ALWAYS меняет ориентацию экрана, без эмуляции датчиков.

Некоторые другие ссылки:

  1. Программное включение / отключение поворотов экрана в Android
  2. Android-активность и блокировка для Android

И вот Activityinfo

***************** Отредактировано ********************************

И я думаю, что вы не можете обрабатывать progressbar при вращении экрана. Я прав?

Поэтому вам не нужно останавливать вращение для этого решения. Вы должны обработать индикатор выполнения. Вот некоторые учебные пособия, которые полезны для этой цели.

  1. Как обрабатывать изменение ориентации экрана, когда диалог выполнения и фоновый поток активны?
  2. Обработка диалогов прогресса и изменений ориентации
  3. Диалоги потоков и прогресса в ориентации экрана экрана Android
  4. Android Persistent ProgressDialog выполнен правильно

************** Отредактировано 2 *****************

И некоторое время вы теряете данные при изменении ориентации. Таким образом, вы можете попробовать эти учебные пособия

  1. Обработка изменений времени выполнения
  2. Более быстрое изменение ориентации экрана
  3. Изменение ориентации в Android

Используйте метод setRequestOrientation в классе Activity.

Наследовать класс ProgressDialog и переопределить методы.
Ниже приведен пример кода.

  class myDialog extends ProgressDialog { Activity mActivity; public myDialog(Activity context) { super(context); this.mActivity = context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } @Override public void dismiss() { super.dismiss(); mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } }