[英]prevent activity restarting when orientation changes
我是Android開發的新手。我有縱向和橫向模式的單獨屏幕。當我改變我的方向時,相應的屏幕被加載並且活動重新開始。 現在我不希望我的活動在我改變方向時重新啟動,但是應該加載相應的屏幕(axml)。
我試過了
[Activity(Label =“MyActivity”,ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]
上面的行停止活動重新啟動但它加載相同的屏幕(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"
因此,這將處理這兩件事,它不會重新啟動您的活動,並將根據您的方向更改加載布局。
由於您已經為操作系統指定了您想要自己處理方向更改,現在您必須自己處理對布局的任何更改,如下所示:
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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.