[英]How to handle activity orientation change to dont recreate the activity?
我使用startActivityForResult()啟動活動,但是在更改方向后,我返回到onActivityResult()方法,requestCode不相同。 如果屏幕方向為橫向模式,我想使用其他布局。 我在清單中嘗試了帶有direction和screenSize參數的配置,但是如果使用此配置,則布局不會更改為橫向布局。 我從requestCode = 0開始活動,但是在方向改變后,我看到requestCode = 66357之類的東西。
創建兩種類型的布局文件夾。 “布局土地”和“布局端口”。 將所需的xml放在同一個目錄中。
您可以聲明您的活動自行處理配置更改,從而阻止系統重新啟動您的活動。
在您的AndriodMainfest.xml中定義configChanges
<activity android:name=".ResultActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
然后在您的ResultActivity.java(您為了獲取結果而調用)中定義onConfigurationChanged()
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
官方鏈接
您有兩種選擇:
A)將您的應用設置為不旋轉。
B)或接受世界還不完美的想法,並修改您的應用以處理配置更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.