2013-10-30 72 views
-1

我正在開發一個項目。在那裏我使用屏幕方向風景和肖像。我還使用android:configChanges="keyboardHidden|orientation|screenSize",以便在切換方向時不刷新活動。Android的方向更改

現在應用程序無法從layout-port-> layout-land xml佈局切換,因爲我使用configChanges =「orientation」。

我能夠交換機從Landscape->縱向或縱向狀態>風景,但它表明從兩個方向,而不是從佈局端口 - >佈局土地或
佈局陸地>佈局開關的佈局端口的xml -港口。

+0

您sohuldn​​t使用android:configChanges =「keyboardHidden | orientation | screenSize」來處理方向更改。檢出onSaveInstanceState和onRestoreInstanceState –

+0

讓我們清楚。 'android:configChanges =「orientation」'是一種破解。它只能用在非常特殊的情況下。如果你搜索它爲什麼不好(非常糟糕),有很多討論。總之,你掩蓋了後來在其他場景中會出現的錯誤。正確的答案是根據這一點學習Activity生命週期和代碼。這種攻擊是懶惰的方式來掩蓋他們的代碼中仍然存在等待被發現的問題。 – Simon

回答

0

在烏爾活動

inside of oncreate() 
if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) 
     setContentView(R.layout.land); 
else if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) 
     setContentView(R.layout.port); 



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


    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     setContentView(R.layout.land); 
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     setContentView(R.layout.port); 
    } 
} 
+0

我正在使用佈局和佈局 - 土地,但它顯示佈局xml在陸地和港口視圖不切換到佈局土地。 – user2775735

0

添加這個在AndroidManifest文件只添加android:configChanges="orientation"和刪除其他兩個用於活動要處理這個方向

0

試試這個

變化android:configChanges="keyboardHidden|orientation|screenSize"

android:configChanges="orientation"

和您的活動,覆蓋onConfigurationChanged梅索德

像馬尼萬南在他的迴應

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


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

就是這樣描述。

+0

謝謝...我跟着你回答...如果我只使用android:configChanges =「orientation」活動重新加載方向change..i不想重新加載活動方向更改 – user2775735

+0

比添加screenSize android:configChanges –

+0

if我添加screenSize然後它不起作用 – user2775735