Android を縦向きまたは横向きで表示できるようにするオプションをユーザーが変更できるようにしたいと思います。私がしていることは、ユーザーが好みを設定し、それをプログラムに強制できるようにすることです。
この時点で、私は内部で次のようなコードを使用していますonCreate
:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("landscapeModeEnabled", false)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
問題は、画面が「強制」方向でない場合、Activity を 2 回作成することです。つまり、ユーザーが横向きにしたい場合、デフォルト (縦向き) の携帯電話は画面を 2 回読み込みます。
XML を使用してこれを設定できることはわかっていますが、それではユーザーが向きの設定を変更することはできません。
それが重要な場合は、 Action Bar SherlockSherlockFragmentActivity
から使用しています。