2016-05-05 74 views
0

我正在開發一個應用程序,需要在智能手機中嚴格以縱向模式運行,嚴格在平板電腦上以橫向模式運行。我使用下面的代碼在我登錄活動的onCreate方法手動設置方向:setRequestedOrientation爲景觀加載肖像佈局

if (getResources().getBoolean(R.bool.portrait_only)) { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     } else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
     } 

凡布爾值來在片中假。然而,方向改變爲風景;佈局文件仍然是從「layout_large」文件夾而不是「layout_large_land」文件夾中選取的。因此我的觀點看起來很緊張。

我試過這個link

但它沒有幫助。

任何幫助表示讚賞。

在此先感謝。

回答

1

我已經使用的文件夾像這樣標籤&移動

enter image description here

layout文件夾是用於移動和layout-sw720dp爲標籤。 720 dp是告訴720+ dp將使用該文件夾進行佈局的寬度。

+0

感謝您的答覆。它似乎不適合我。 –

+0

你能告訴我什麼是'setContentView()'什麼是你的佈局文件夾中的佈局文件名?對於移動設備和標籤 –

0

我有同樣的問題。確保您未在​​AndroidManifest中爲您的活動設置android:configChanges="orientation"

我猜的問題是,setRequestedOrientation可能會觸發一個方向配置更改,但是通過使用android:configChanges="orientation"此配置更改不是由系統註冊。

或者,如果您想保留Manifest設置,則必須爲此特定配置更改實現您自己的娛樂機制。

它可能是這個樣子:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(getResources().getBoolean(R.bool.portrait_only)) 
     recreate(); 
}