我不建议您删除正常的目录,因为它总是作为默认之一。
的正常的目录的效用,是当系统无法找到与您的设备相匹配的目录中的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
好吧,我已经有了大地。根据截图,你认为我需要添加什么? –