2013-12-17 167 views
-3

我已经创造了风景模式不同的布局,并把我的XML在一个名为布局,土地目录,到目前为止,一切顺利。问题是每当屏幕旋转onPause()时,onStop()和onCreate()再次被调用,我不想这样做。于是我又补充道:Android处理屏幕方向

android:configChanges="orientation|keyboardHidden" 

到我的清单中的类,但现在我不能用在布局土地文件夹中的XML。 那么我怎样才能自定义纵向和横向模式的屏幕,而无需再次调用onCreate()?

+0

我认为你需要更详细地阐述你的上下文 –

+0

不要使用这个黑客..谷歌周围的原因。与其试图绕开Android的工作方式,学习并使用它。它非常有意义,是移动应用程序管理的优雅解决方案。使用生命周期,并始终假定只要您的活动不再处于前台,它可能会被杀死,并且下一次回调将会是onCreate()。相应的代码,你会有一个更强大的应用程序。按照上面的建议,我会找到六种方法让你的应用崩溃,甚至没有想过,并且都是因为你没有正确编写onCreate。 – Simon

回答

1

您需要自己明确处理配置更改。由于您添加了android:configChanges="orientation|keyboardHidden",这意味着您告诉android您将自行处理配置更改。

public void onConfigurationChanged(Configuration config) { 
super.onConfigurationChanged(config); 

// Checks the orientation 
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    //Here set the layout for your landscape mode 
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ 
    //Here set the layout for your portrait mode 
    } 
} 

阅读this链接。这将有所帮助。