我有一个包含许多布局(大约 40 个)的复杂项目,为了减少重复,我使用了很多包含。
我在 layout-xlarge-land 中有一个活动布局,其中包括另一个布局(布局 B),它本身只是 LinearLayout 中的一组更多内容。
我的模拟器设置为 XLARGE 和横向,果然,它选择了活动布局。我已经在布局中对活动标题进行了硬编码,因此我可以确认正在使用哪个活动标题。
问题是如果我将布局 B 放在 layout-xlarge-land 中,ADT 将不会预览我的布局并给出“无法渲染”错误。如果我将布局 B 移动到 res/layout(即没有限定符),它会起作用。
我的理解是Android会首先在合格文件夹中查找布局,然后,如果找不到,则使用不合格文件夹中的布局。
这是一个问题,因为布局 B 对于各种分辨率和方向应该是不同的。
我是不是误解了什么,或者这是 ADT/Android 的怪癖?如果是怪癖,有什么解决方法吗?
资源
layout layout-xlarge-land activity_layout.xml <---- correctly loaded layoutb.xml <---- "cannot render"
资源
layout layoutb.xml <---- renders OK layout-xlarge-land activity_layout.xml <---- correctly loaded
[编辑] 我正在使用 IDEA,但看不到与 IDE 的任何相关性。
[编辑] 来自 IDEA 日志
s.android.uipreview.RenderUtil - InflateException:您必须指定一个有效的布局参考。布局 ID @layout/data_panel_all_views 无效。
这证实了 ADT 正在寻找 res/layout。