好吧,这个功能需求也是因为作为一个重度强迫症患者,非常想要把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']}}
添加后的build.gradle文件类似这个样子 需要特别注意的是:代码中一定要把 src/main/res/layouts 和 src/main/res 两行代码写在最后面!!!
10. 重启一下AS应该就ok了~