添加子文件夹的步骤,可参考链接https://www.cnblogs.com/whycxb/p/9095860.html 。
子文件夹按链接所述文章操作后,确实是可行的。但是会出现一些问题。
1.添加的activity在默认情况下,会将activity的界面添加到app gradle中res.srcDirs中的第一个路径上。
若你添加的路径为:sourceSets { main{ res.srcDirs = [ 'src/main/res/layout/home', 'src/main/res/layout', 'src/main/res' ] } }
,那么前端的xml文件将添加到layout/home下的layout文件夹中。
2.若你添加的不是空白activity,而是tabbed activity,那么它将在添加路径中第一个路径下的文件夹下添加valus文件夹,并添加引入的相关文件。但在编译时,由于最外层的layout文件夹下已经存在了valus中strings、dimensions、colors、styles 等相关xml文件,同时添加的路径中又有相关文件,往往出现 声明重复的报错。若没有相关经验,会导致查错时相当困难。
为了避免上述情况的出现,试了下在保证将'src/main/res'放在最前的情况下(测试过程中发现其按添加先后,优先选择先添加的路径),那么问题2中的就不会出现此问题,同时新添加的activity中的相关xml文件都在最外层的layout文件夹,此时需要手动将其拖到你需要的文件夹中即可,然后refactor即可。
但这又会导致下述问题:
1.一些布局xml未放入到子layout下,在编译时很可能会报错:error: cannot find symbol。——只要将这个布局文件移入你要移入的子文件夹就可以解决问题。
2.在子layout下删除xml文件后,res文件夹下会出现提示错误的红色底纹。——出现这个问题,不用管,对项目生成没有影响。