1. ホーム
  2. android

[解決済み] Androidレイアウトのフォルダにサブフォルダを含めることはできますか?

2022-03-16 14:06:13

質問

現在、私はすべてのXMLレイアウトファイルを「res/layout」フォルダの中に保存しています。

を例とします。

layout
-- layout_personal
   -- personal_detail.xml
   -- personal_other.xml
--layout_address
  -- address1.xml
  -- address2.xml

同じように、大きなアプリケーションにはサブフォルダを設けたいのですが、Androidのプロジェクト内でそのような方法はありますか?

layoutフォルダ内にlayout-personalとlayout_addressのサブフォルダを作成することができますが、R.layout._______を使ってXMLレイアウトファイルにアクセスするとき、メニュー内にXMLレイアウトのポップアップがありません。

解決方法は?

gradleでできます。 私は デモプロジェクト を紹介します。

コツは、gradleの機能である 複数のリソースフォルダをマージする そして、res フォルダとネストされたサブフォルダを sourceSets ブロックに設定します。

一癖あるのは、コンテナリソースフォルダーを宣言してから、そのフォルダーの子リソースフォルダーを宣言することができない点です。

以下は、デモのbuild.gradleファイルにあるsourceSetsブロックです。 サブフォルダが最初に宣言されていることに注意してください。

sourceSets {
    main {
        res.srcDirs =
        [
                'src/main/res/layouts/layouts_category2',
                'src/main/res/layouts',
                'src/main/res'
        ]
    }
}

<イグ

また、実際のリソースファイル(png、xml レイアウトなど)の直接の親は、やはり 仕様 .