多くのレイアウト (約 40) を含む複雑なプロジェクトがあり、重複を減らすために、多くのインクルードを使用しています。
私は別のレイアウト (レイアウト B) を含む layout-xlarge-land にアクティビティ レイアウトを持っています。
私のエミュレーターは 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 を調べていることが確認されます。