32

Androidアプリの実行中に、次のコード行を使用してプログラムで向きを変更したいと思います。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

これまでのところ機能しますが、主な問題は、画面の向きが変わるとアクティビティ全体が再読み込みされることです。これは望ましくありません。出来ますか?ありがとう。

編集:OK、私が欠けていたものを見つけた後。configChangesプロパティに「screenSize」も含める必要があったので、

android:configChanges="orientation|screenSize"

すべてを解決しました。

4

5 に答える 5

1

このメソッドを呼び出して、マニフェスト ファイルを設定します

android:configChanges="orientation|screenSize|keyboardHidden"

public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);

        // Checks the orientation of the screen
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
        }
    }
于 2015-09-01T08:53:00.450 に答える
1

AndroidManifest ファイルandroid:configChanges="orientation"で、この向きを処理するアクティビティを追加します

アクティビティでは、onConfigurationChange オーバーライド メソッドを使用します。向き変更で処理したいタスクを実行します。

于 2013-02-14T11:34:25.753 に答える