我使用startActivityForResult()启动一个活动,但是在orientatikn更改后,我返回到onActivityResult()方法,requestCode不一样。如果屏幕方向是横向模式,我想使用不同的布局。 我在清单中尝试了使用orientation和screenSize参数的配置,但是如果我使用这个布局没有改变为横向布局。 我使用requestCode = 0启动了活动,但是在方向改变之后,我看到requestCode = 66357或者什么。
答案 0 :(得分:0)
创建两种类型的布局文件夹。 “布局 - 土地”和“布局 - 港口”。将所需的xml放在具有相同名称的目录中。
答案 1 :(得分:0)
您可以声明您的活动本身处理配置更改,这会阻止系统重新启动您的活动。
在AndriodMainfest.xml中定义configChanges
<activity android:name=".ResultActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
然后在ResultActivity.java中(你调用get result)定义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();
}
}
官方link
答案 2 :(得分:-1)
您有两种选择:
A)将您的应用设置为不旋转。
B)或者接受世界还不完美并修改你的应用来处理配置变化