Я пытаюсь реализовать нажатие кнопки, чтобы иметь возможность изменить ориентацию действия, однако он переходит в ландшафтный режим, но не возвращается в портретный режим.
if(!state){
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_LANDSCAPE);
}
else {
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_PORTRAIT);
}
state = !state;
Я читал, что иметь состояние = ложь, когда кнопка нажата, изменить ориентацию, затем состояние устанавливается как истинное, в этот момент, если кнопка снова нажата, действие вернется к альбомной ориентации.
Я также читал об использовании переключателя? Но я попытался реализовать это, но не очень хорошо, поэтому я попробовал этот метод.
Изменить
Я реализовал, используя вращение поверхности, и они могут подобрать вращение либо на 0, либо на 90.
if (orientation==Surface.ROTATION_0)
{
Toast.makeText(getBaseContext(), "going to landscape", Toast.LENGTH_LONG).show();
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_LANDSCAPE);
}
else if (orientation==Surface.ROTATION_90)
{
Toast.makeText(getBaseContext(), "going to portrait", Toast.LENGTH_LONG).show();
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_PORTRAIT);
}
Однако, когда действие переходит в альбомную ориентацию и отображается всплывающее уведомление, когда я пытаюсь вернуться в портретное отображение, всплывающее уведомление действительно показывает «переход к портретной ориентации», но setRequestOrientation не выполняется. В чем проблема?
state
снова станетfalse
. Проверь это. - person Sergey Zhabinskii   schedule 15.08.2013