suj*_*jay 12 android xamarin.android android-orientation android-activity xamarin
我是Android开发的新手.我有纵向和横向模式的单独屏幕.当我改变我的方向时,相应的屏幕被加载并且活动重新开始.现在我不希望我的活动在我改变方向时重新启动,但是应该加载相应的屏幕(axml).
我试过了
[Activity(Label ="MyActivity",ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]
上面的行停止活动重新启动但它加载相同的屏幕(axml).请建议.谢谢
Nir*_*ali 40
在您的活动中写下此代码
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
并在您的清单文件中添加此行
android:configChanges="orientation|keyboardHidden|screenSize"
Run Code Online (Sandbox Code Playgroud)
因此,这将处理这两件事,它不会重新启动您的活动,并将根据您的方向更改加载布局.
由于您已经为操作系统指定了您想要自己处理方向更改,现在您必须自己处理对布局的任何更改,如下所示:
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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26968 次 |
| 最近记录: |