Android项目中 layout目录臃肿的问题解决方案

感谢大神https://www.jianshu.com/p/fcc831e87b3d的思路。

引子

当项目越来越大,某些资源文件,比如layout,会十分臃肿。

就像这样。

你往下拖,还能拖好一会才见底。
所以,查了一下资源文件的分包方式。
试验成功,能够成功编译。

解决方案

OK,下面是详细配置步骤:


1)原先在res下面有一个layout文件,先改成layouts
2)在layouts下面创建自己的分包,比如你想把所有的fragment都放在一起,则,在layouts下面创建一个frag目录,然后!重点来了,在frag下,再创建一个layout目录

3)把你的所有fragment的布局文件都拖到这里面layouts/frag/layout去吧
4)是时候动一动module的gradle文件了;打开 build.gradle,加上如下代码:

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()
    }
}

 

稍微解释一下,这段代码放在android{}内部。
gradle文件内部都是用grovvy语言写的(网上很多grovvy资料,可查)
第一段的意思大概是,给listSubFile(它是一个数组)赋值,将src/main/res/layouts的子目录全部转换为绝对路径 然后加到数组中去。
第二段设置是资源文件的目录。


5)改过gradle之后最好是手动同步一下,

 

OK,按照这个思路,所有的布局文件xml都可以分包存放了。

 

缺陷

在AndroidStudio3.2.1之下,你有可能会看不到layouts下的分包文件!这是as本身的问题,你可以尝试按照下面的方式。。。。试试看。

 

 

另外:

这里其实还可以继续优化。虽然解决了目录臃肿的问题,但是,这是强制分包。。。也就是说。

你放在layouts下面的资源文件是不会被识别的,你必须把所有的layout xml放进子目录。

所以,gradle的这段配置其实还可以优化,有时间再自己研究吧。

转载于:https://www.cnblogs.com/hankzhouAndroid/p/10114320.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值