2

プログラムで複数の向きを設定しようとしています。たとえば、画面の向きを縦、逆縦、逆横にすることができます。

このコードを使用しようとしましたが、うまくいかなかったようです。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);

編集

setRequestedOrientation メソッドは最新の向きに適用されます。2つの向きを設定する方法を見つけようとしています。

4

1 に答える 1

5

構成の変更に基づいて、要求された向きを設定する必要があります

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if...
}

縦向きと逆向きの縦向きを一緒にサポートしたい場合は、SCREEN_ORIENTATION_SENSOR_PORTRAIT(詳細) を使用してください。別の便利なリンク

編集:

新しい構成が横向きの場合、横向きと縦向きの両方をリクエストする必要があるケースは見当たりませんが、試すことができますsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

于 2016-10-28T13:26:57.763 に答える