当一个项目越做越大的时候,res/layout中的布局文件就会越来越烦杂,没有层次感。而对于该问题,我们是否有更好的解决方法呢?以下主要介绍两种解决该问题的思路。
一、在res/layout中,自己手动来创建所需要分类层次。(先上张图)
1.首先就是把你的项目备份,以防万一。
2.接下来就正式如题:根据上图创建出你所需要的分类模块名,在模块名里面再创建layout目录。然后将对应的布局文件放到layout目录下即可。(这里插一下,我当时直接在AS中操作的话,是会出现新建的目录是Layouts.screencapture.layout的格式,而不是用树形结构一层层打开的,后来我就直接在电脑的文件系统中手动新建文件夹,目的是一样的)
3.配置:在module对应的build.gradle的Android目录下添加SourceSets配置:
sourceSets { main { res.srcDirs = [ 'src/main/res/layouts/flexboxlayout', 'src/main/res/layouts/screencapture', 'src/main/res/layouts', 'src/main/res' ] } }
需要特别注意的是:代码中一定要把 src/main/res/layouts 和 src/main/res 两行代码写在最后面!!!
对于该步骤,还有个自动添加方法,不用每次都要手动配置一次。
优化
为了解决这个问题,我在网上找了一个方法,这个方法会遍历res/layouts文件夹下面的子目录,自动生成如上图的数组,废话不多说,看代码:
def listSubFile = { def resFolder = 'src/main/res/layouts' def files = file(resFolder).listFiles() def folders = [] files.each { item -> folders.add(item.absolutePath) } folders.add(file(resFolder).parentFile.absolutePath) return folders } sourceSets { main { res.srcDirs = listSubFile() } }通过上面这种方式,不用在每次添加新文件夹的时候都手动添加一行代码。
4.最后,保险下重启一下AS应该就ok了。
二、直接引用 Android File Grouping Plugin 插件,下载地址:点击打开链接
插件的安装步骤
- in Android Studio: go to
File → Settings → Plugins → Browse repositories
and search for插件名
or
- in Android Studio: go to download it jar and install
File → Settings → Plugins → Install plugin from disk
当你装完插件后(过程会自动重启),当你右键点击目录时,弹出的列表最顶端会多出一个“Group”条目按钮,直接点击系统就会自动帮你分类。
喜欢那一种方式,主要看个人喜爱和项目情况。最后还说一点,其实,这两种方法还可以结合一起使用。
如果,上面有存在的误点,希望阅者们提出,大家共同进步。
参考文章:https://yq.aliyun.com/articles/11632
http://www.jianshu.com/p/09a2d13a337f
http://www.jianshu.com/p/fcc831e87b3d