好吧,這個功能需求也是因爲作爲一個重度強迫症患者,非常想要把layouts中的文件分類整理下。否則看到一堆Activity和Fragment等文件混在一起特別難受。更重要的原因是,如果你的工程交給別人維護,別人看到一堆佈局文件壓根不知道從哪裏下手。又是經過一番折騰,總算把佈局整理成這樣了:
說到佈局文件的整理,一般有兩種:
1. 按照文件類型:基本上分爲Activity、Fragment和views等
2. 按照頁面類型:你的工程有幾個大的頁面,每個頁面下面又有多少個子頁面,可以按照這種模塊的方式分類整理下。
當然我就是採用第二種方式。
說點題外話,我最開始的時候在StackOverFlow上面搜到了兩種方法,一種方法是用一個plugin:
但是這種方法經過實際認證,好像在1.3版本之後的AS就不能用了。下圖就是我安裝的版本,看到安裝了之後,左側的導航欄中根本沒有other setting的入口。
我還專門去問了這個插件的開發者,告訴他我的1.4.1版本的AS沒有效果,然後作者給我推薦了另外一種方法,可能稍微麻煩一點,但是確實有效。其實也是在StackoverFlow中贊同數比較高的回答。下面我們就詳細一步一步來吧:
0. 先說一個大前提,這種方法必須要你的AS設置成project模式,而不是Android模式
1. 把你的整個Layouts文件夾拷貝出來做一個備份(備份永遠是我們在做嘗試之前最重要的一件事情。我一般習慣把整個工程也備份一下)
2. 整個刪除你的Layouts文件夾(確保你至少做了第1步的文件夾備份)
3. 右鍵你的res文件夾,然後New --> directory
4. 命名爲Layouts(其實你也可以起成另外的名字,無關緊要了)
5. 右鍵你剛建好的Layouts文件夾,New --> directory(這裏面就要建我們說的第1層目錄了,按照我的習慣,這一層的文件夾就是我們的工程的幾大模塊的分類了。當然你也可以按照Activity和Fragment來命名)
這裏插一下,我當時直接在AS中操作的話,是會出現新建的目錄是Layouts.mainpage.layout的格式,而不是用樹形結構一層層打開的,後來我就直接在電腦的文件系統中手動新建文件夾,目的是一樣的
6. 在你第5步新建好的文件夾中繼續新建一個文件夾,命名爲layout。這一步驟非常重要!這一步驟非常重要!這一步驟非常重要!
7. 從第1步備份的文件中把相應的文件拷貝到這個layout文件夾中
8. 重複第5到第7步,把所有的佈局文件分類存放好。
9. 打開build.gradle文件(注意這裏會有兩個build.grade文件,我們要改變的是工程裏面的那個),然後添加進去下面的代碼:
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/mainpage',
'src/main/res/layouts/investment',
'src/main/res/layouts/productlist',
'src/main/res/layouts/myaccount',
'src/main/res/layouts/setting',
'src/main/res/layouts',
'src/main/res'
]
}
}
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/mainpage',
'src/main/res/layouts/investment',
'src/main/res/layouts/productlist',
'src/main/res/layouts/myaccount',
'src/main/res/layouts/setting',
'src/main/res/layouts',
'src/main/res'
]
}
}
添加後的build.gradle文件類似這個樣子
需要特別注意的是:代碼中一定要把 src/main/res/layouts 和 src/main/res 兩行代碼寫在最後面!!!
10. 重啓一下AS應該就ok了~
以下爲本人補充,原文未提及:
每次新建佈局文件後,文件並不在選中的文件夾裏,而是在res.SrcDirs裏排在第一的字段表示的地址裏