2

ポートレートとランドスケープの両方の大画面用のレイアウトを作成しました。両方のレイアウトにsignin.xmlがありますが、画面の向きを変更すると、ランドスケープxmlが読み込まれず、代わりにランドスケープモードに変更されますが、ポートレートxmlはロードされました。マニフェストでonconfigの変更についても触れましたが、向きが変わったときにデータを保存する方法を教えてください。いくつかの例を示してください。

以下は私のJavaコードです

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

               Display display = ((WindowManager)       getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
            int   orientation = display.getOrientation(); 
            boolean oAllow = false;
            switch(orientation) {
            case Configuration.ORIENTATION_PORTRAIT:
            if(!oAllow ) {
                    setRequestedOrientation    (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            }
            break;
        case Configuration.ORIENTATION_LANDSCAPE:
            if(!oAllow) {
                    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            break;
    }
      }

ランドスケープをポートレート、ランドスケープに変更するときに、ランドスケープビューを取得するにはどうすればよいですか?

何か提案がありますか?前もって感謝します

4

2 に答える 2

2

あなたのportraitxmlフォルダーのレイアウトまたはlayout-portraitですか?レイアウトポートレートの場合は、このように宣言しないでください。デフォルトの「layout」フォルダを作成するだけで、向きが縦向きの場合、OSはxmlをフェッチします。

次に、上記のコードをJavaでコメント化し、androidmanifest.xmlで、アクティビティ宣言の前にandroid:configChanges = "keyboardHidden | orientation"を宣言し、それが機能するかどうかをテストします。

于 2012-05-22T07:09:16.087 に答える
1

なぜonconfigchangesをオーバーライドしているのですか?これがレイアウトを台無しにする可能性があります。レイアウトを含むlayoutおよびlayout-landフォルダーがある場合、androidはレイアウトの変更を処理できます。

于 2012-05-22T06:44:49.143 に答える