Android開発は初めてです。縦向きモードと横向きモードに別々の画面があります。向きを変更すると、対応する画面が読み込まれ、アクティビティが再開します。今度は、アクティビティを再開したくないのですが、向きを変更しますが、対応するscreen(axml)をロードする必要があります。
私が試してみました
[Activity(Label = "MyActivity"、ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]
上記の行は、アクティビティの再開を停止しますが、同じscreen(axml)をロードします。提案してください 。ありがとう
あなたの活動にこのコードを書いてください
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.landscapeView);
} else {
setContentView(R.layout.portraitView);
}
}
また、この行をマニフェストファイルに追加します
Android:configChanges="orientation|keyboardHidden|screenSize"
したがって、これは両方を処理し、アクティビティを再開せず、方向の変更に従ってレイアウトをロードします。
向きの変更を自分で処理することをOSに指定したので、次のように、レイアウトへの変更を自分で処理する必要があります。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.portrait);
//do other initialization
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.landscape);
//do other initialization
}
}