Android的方向更改
问题描述:
我使用此代码来检测布局方向更改,但下面的代码使用相同的肖像布局,而不是保存在layout-land中的布局。Android的方向更改
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
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();
}
}
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
答
如果覆盖onConfigurationChanged方法然后在屏幕方向改变的onCreate方法不叫。您的活动未重新启动。这就是为什么你得到相同的布局。
你需要调用的setContentView(R.layout.your_layout)在onConfigurationChanged方法。
[Android Orientation Change]的可能重复(http://stackoverflow.com/questions/4616176/android-orientation-change) – 2012-03-12 05:53:41
你是什么意思?当你改变方向时,它是否总是落在“else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){”case并显示“portrait”?或者布局没有变化? – AndroDev 2012-03-13 11:55:11