アクティビティの向きを変更できるようにボタンクリックを実装しようとしていますが、横向きモードになりますが、縦向きには戻りません。
if(!state){
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_LANDSCAPE);
}
else {
setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_PORTRAIT);
}
state = !state;
私が読んだのは、ボタンが押されたときにstate = falseを持ち、向きを変更してから状態をtrueに設定することでした。この時点でボタンをもう一度押すと、アクティビティは横向きに戻ります。
スイッチの使用についても読みましたか?しかし、それを実装しようとしましたが、うまくいかなかったので、この方法を試しました。
編集
表面の回転を取得して実装しましたが、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 は実行されません。問題は何ですか?