2015-07-10 74 views
0

我正在製作一個應用程序來遵循單個活動規則 - 整個APP生命週期中只有一個活動,屏幕只是片段。一個片段關心屏幕方向變化

除了一個/兩個片段,整個應用程序只支持橫向屏幕方向。 AndroidManifest.xml如下:

<activity 
     android:name=".ui.activity.MainActivity" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name"> 

問:如何鎖定我的所有碎片? 我嘗試通過重寫活動中的onConfigurationChanged,但它永遠不會被調用。

+0

'機器人:screenOrientation =「portrait' 」鎖定「 屏幕方向爲縱向...現在爲什麼/當onConfigurationChanged應該被調用? – Selvin

+0

那麼,這是問題的一部分,是否有一種方法可以鎖定除一個或兩個以外的所有片段? – Qylin

+0

如果我理解正確,爲什麼android:screenOrientation設置爲縱向我認爲這是你想要的,從你的陳述「...整個應用程序只支持風景畫面」 –

回答

0

如果我理解你是正確的(因爲它不清楚),你想鎖定活動和所有的片段。 從技術上講,你已經爲整個和唯一的Activity設置了配置,這會影響你的碎片。如果不是這樣,那麼我懷疑這些碎片會禁用它的設置。我唯一的建議是在onCreateView(添加代碼)並調用setRequestedOrientation()

代碼建議在片段:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
MainActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 
... 
}