Не меняя ориентацию, которая вошла - PullRequest
0 голосов
/ 11 мая 2018

в моем приложении вы можете ввести действие в обеих ориентациях, но я хочу, чтобы на одном экране, если вы вошли с одной ориентацией, вы не можете перейти на другую, пока не выйдете из этого действия

1 Ответ

0 голосов
/ 11 мая 2018

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

Измените элемент <activity> в файле манифеста, включив атрибут android:configChanges со значением, представляющим конфигурацию, которую вы хотите обработать:

<activity android:name=".MyActivity" android:configChanges="orientation">

Когда ваша деятельность начинается -letsскажем на onStart() или onResume(), запишите текущую ориентацию, чтобы вы могли использовать это значение во время выполнения действия, чтобы принять любое решение на основе этого

private int initialOrientation;
@Override
public void onResume(){
    super.onResume();
    initialOrientation = getResources().getConfiguration().orientation;

}

Затем в действии,определите слушателя для слушателя конфигурации, в котором вы устанавливаете ориентацию на то, чем она была, и ориентация останется такой, как есть.

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(initialOrientation);
}
...