0

アクティビティでカスタム ダイアログを使用しています。ダイアログが他の場所に表示されている場合にのみ画面の向きを設定したいのですが、画面の向きは縦から横、またはその逆に変更できます。特にJavaコードでそのような特定のケースの向きを修正する方法はありますか.

4

3 に答える 3

4

これは、サービスから起動されたフルスクリーン ダイアログで行う必要がありました。

final WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
params.copyFrom(window.getAttributes());
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.MATCH_PARENT;
params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;

window.setAttributes(params);
于 2014-05-21T19:31:48.527 に答える
3
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
于 2012-09-17T10:28:02.867 に答える
0

use android:configChanges="orientation"then Android は、向きが変更されたときにアクティビティを再作成しません。ダイアログを閉じたくない場合は、Activity.showDialog()メソッドを使用してください。それでも使用したい場合android:configChanges="orientation"は、メソッドでドローアブルを手動で変更する必要がありますActivity.onConfigurationChanged()

于 2012-09-17T10:27:57.953 に答える