方向重置 activity Android
orientation reset activity Android
每次我打开 phone 横向模式时,我的 activity 都会重置。
如何阻止 activity 重置?
这是我尝试使用的代码,但它不起作用。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.get_msg);
} else {
setContentView(R.layout.get_msg);
}
}
清单文件:
android:configChanges="orientation|keyboardHidden|screenSize"
这里是 link 我从哪里得到它:
prevent activity restarting when orientation changes
改变这个
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
System.out.println("this's landscape");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
System.out.println("this's portrait");
}
}
在 androidMainifest.xml 中设置 android:configChanges="orientation|keyboardHidden|screenSize" 将防止 activity 重置,只是 onConfigurationChanged() 将被执行,您的参考是支持两种布局的句柄,它不适合您在此处使用的 application.onConfigurationChanged() 重新加载布局,因此 activity 不会重置,只是您的布局重置。
另一种方式:
String text;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int rotation = getWindowManager().getDefaultDisplay().getRotation();
if(rotation == 0)
text="Portrait";
else
text="Landscape";
}
每次我打开 phone 横向模式时,我的 activity 都会重置。 如何阻止 activity 重置?
这是我尝试使用的代码,但它不起作用。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.get_msg);
} else {
setContentView(R.layout.get_msg);
}
}
清单文件:
android:configChanges="orientation|keyboardHidden|screenSize"
这里是 link 我从哪里得到它:
prevent activity restarting when orientation changes
改变这个
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
System.out.println("this's landscape");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
System.out.println("this's portrait");
}
}
在 androidMainifest.xml 中设置 android:configChanges="orientation|keyboardHidden|screenSize" 将防止 activity 重置,只是 onConfigurationChanged() 将被执行,您的参考是支持两种布局的句柄,它不适合您在此处使用的 application.onConfigurationChanged() 重新加载布局,因此 activity 不会重置,只是您的布局重置。
另一种方式:
String text;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int rotation = getWindowManager().getDefaultDisplay().getRotation();
if(rotation == 0)
text="Portrait";
else
text="Landscape";
}