Я пытаюсь заблокировать ориентацию экрана до положения, которое было при вызове приложения, чтобы не сбой при повороте экрана (да, я использовалКак заблокировать поворот экрана до текущего состояния
андроида: configChanges = "ориентация | keyboardHidden"
и она отлично работает на низких версиях Android, но это, кажется, что для более высоких он должен быть
андроид: configChanges =» Orien tation | keyboardHidden | screenSize "
, а параметр screenSize не поддерживается версиями нижнего андроида).
Итак, я попытался это решение (1):
setRequestedOrientation; ( GetResources() getConfiguration() ориентации.).
и этот другой (2):
setRequestedOrientation (getScreenOrientation());
где
public int getScreenOrientation()
{
Display getOrient = getWindowManager().getDefaultDisplay();
int orientation = Configuration.ORIENTATION_UNDEFINED;
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else {
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
return orientation;
}
и, в обоих случаях (1 и 2), результат: Когда я запустить приложение в портретной ориентации, он отлично работает. Ориентация экрана заблокирована в портретном режиме. Но, когда я делаю это в альбомной ориентации, он постоянно меняет ориентацию.
Что я делаю неправильно? Заранее спасибо
Почему бы вам не исправить источник вашего сбоя? – CommonsWare
Точно как CommonsWare сказал, что вы не должны «блокировать» ориентацию, чтобы избежать аварии в первую очередь (правильно сохранить и восстановить состояние). –
Я абсолютно второй момент CommonsWare и Charlie COllins. –