我不建議您刪除正常的目錄,因爲它總是作爲默認之一。
的正常的目錄的效用,是當系統無法找到與您的設備相匹配的目錄中的XML文件,所以它會採取默認的XML(一種在正常的目錄)。
如果您忘記添加一個(或多個)屏幕尺寸/方向目錄,這將會很有用。
這是一個例子:
假設你的設備屬於xlarge
類別。
方案1:
你有這些個XML:
(1) res/layout/my_layout.xml // layout for normal screen size ("default")
(2) res/layout-xlarge/my_layout.xml // layout for extra-large screen size
(3) res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation
在橫向模式下,Android將尋找在res/layout-xlarge-land
目錄中的XML =>目錄中存在,它包含my_layout.xml
所以它確定,它會採取這一個。
在縱向模式下,Android將查找XML在res/layout-xlarge-port
目錄=>目錄丟失,所以它會尋找在res/layout-xlarge
的XML =>目錄中存在,它包含my_layout.xml
所以它的好,它會這個。
方案2:(不layout-xlarge
目錄)
你有這些個XML:
(1) res/layout/my_layout.xml // layout for normal screen size ("default")
(3) res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation
在橫向模式下,Android將查找XML在res/layout-xlarge-land
目錄=>目錄存在,它包含my_layout.xml
所以它的確定,它將採取這一個。
在縱向模式下,Android將查找XML在res/layout-xlarge-port
目錄=>目錄丟失,所以它會尋找XML在res/layout-xlarge
=>它也不見了,因此它會尋找在XML中res/layout
= >目錄存在,它包含my_layout.xml
所以它的確定,它會採取這一個。
瞭解更多詳細看看official documentation,在 「使用配置預選賽」 部分:
嘿拉米,感謝詳細的解答。事情是,我有佈局'res/layout-xlarge'。那麼問題是什麼?我也有'res/layout-xlarge-land'(看看我的問題中的截圖)。它正在'xlarge-land'上採取'正常'... –
不客氣!你確定你的設備屬於'xlarge'類別嗎?除了屏幕截圖中的佈局目錄(layout-xhdpi for exp),您的項目中沒有其他佈局目錄?那麼肖像模式呢,它是否需要'res/layout-xlarge'中的佈局或'res/layout'中的佈局(正常)? – Rami
好吧,我已經有了大地。根據截圖,你認爲我需要添加什麼? –