Android 之路 (9) - 第一个AS工程代码模板

0
回复
129
查看
[复制链接]

40

主题

57

帖子

1430

安币

Android大神

菜鸟

Rank: 6Rank: 6

发表于 2019-5-20 09:55:01 | 显示全部楼层 |阅读模式
如果对本篇文章感兴趣,请前往,原文地址:http://www.apkbus.com/blog-674324-80093.html

# 引言前面我们在封装Toolbar的时候,使用的是在xml中修改style,其实这种做法在适配会有一点问题,那就是每次我们新建Activity的时候都需要手动的更改 theme、style,这比较繁琐、也没什么意义,所以下章我们就着手解决这个问题。# 正文## 解决方案解决方案也很简单,就是利用AS自带的`工程模板就`能够解决这个问题,也就是下面这个东西:![工程模板](http://qiniu.fullscreendeveloper.cn/writestory/1538656033100.png)这个我们用得多,但是真正了解的应该不多,其实他就是使用Freemarker编写模板,然后通过替换输出成为源文件。所以我们只需要修改其中的一部分关键代码替换成自己的就行。注意:在写本文章的时候用的是 AS 3.14(已经适配3.4),每个版本之间会有细微的差别。## 开始### 模板位置windows:> AS安装位置/plugins/android/lib/templates/activitiesmacOS:> /Applications/Android Studio.app/Contents/plugins/android/lib/templates/activities### 开始更改我们以`BasicActivity`为蓝本,复制一份命名为`CandyBaseActivity`,然后使用其他编译器打开,我这里使用的是 [atom](https://atom.io/)。具体工程模板相关的说明请看[AndroidStudio笔记(5)懒人养成的Freemarker代码模板](),这里就不仔细讲解了。我们先整理一下我们需要修改的部分,然后再一步一步的完成:> manifest中的theme> Activity中继承CandyBaseActivity,去除FloatActionButton> activity_layout中修改AppBarLayout和Toolbar、去除FloatActionButton#### 修改include![include](http://qiniu.fullscreendeveloper.cn/writestory/1538657440940.png)图中的标注出来的地方是manifest和layout.xml的引用,这部分是放在common下面的,是全局配置,我们不好修改, 最好是将这两个文件复制到我们的模板中来,然后修改一下include:![修改include](http://qiniu.fullscreendeveloper.cn/writestory/1538657641309.png)#### 修改manifest![manifest-replace](http://qiniu.fullscreendeveloper.cn/writestory/1538657977674.png)可以看到图中的的指向地址仍是common文件夹,我们需要将这两个文件拷贝到我们的root文件夹下和values文件夹中。修改AndroidManifest.xml.ftl,将中间的`theme`修改成我们自己的`AppTheme.ToolbarHeight`。如下:```xml                     ```#### 修改SimpleActivity.java.ftl我们暂时只做Java版本的,对于kotlin先暂时不适配。去除其中不需要的部分,然后修改继承关系,顺便加一点注释。```javapackage ${packageName};import android.os.Bundle;import android.view.View;import com.td.framework.base.activity.CandyBaseActivity;import ${applicationPackage}.R;/** * Created on ${.now} * @author: aohanyao * @version:1.0 */public class ${activityClass} extends CandyBaseActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.${layoutName});    }}```#### 修改activity_layout  继续阅读全文



想在安卓巴士找到更多优质博文,可移步博客区

如果对本篇文章感兴趣,请前往,
原文地址:
http://www.apkbus.com/blog-674324-80093.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )