2012-03-12 80 views
0

我使用此代码来检测布局方向更改,但下面的代码使用相同的肖像布局,而不是保存在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"> 
+0

[Android Orientation Change]的可能重复(http://stackoverflow.com/questions/4616176/android-orientation-change) – 2012-03-12 05:53:41

+0

你是什么意思?当你改变方向时,它是否总是落在“else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){”case并显示“portrait”?或者布局没有变化? – AndroDev 2012-03-13 11:55:11

回答

1

如果覆盖onConfigurationChanged方法然后在屏幕方向改变的onCreate方法不叫。您的活动未重新启动。这就是为什么你得到相同的布局。

你需要调用的setContentView(R.layout.your_layout)onConfigurationChanged方法。