携手创作,一起生长!这是我参加「日新计划 8 月更文挑战」的第22天,点击检查活动详情

本篇文章介绍怎样运用Android Studio提供的Live Templates更优雅完成自定义View的结构办法,说句人话便是:简化自定义View结构参数模板代码的编写,完成主动生成。

问题场景

之前写过一篇文章: 2.@JvmOverloads快捷完成函数重载, 借助于Kotlin默许参数+@JvmOverloads简化自定义View的结构办法编写:

Live Templates实战:更优雅实现自定义View的构造方法

简化是简化了,可是每次写这么一大堆仍是感觉好烦啊,比方忘记AttributeSet类怎样拼写的了等等。这就得拿出咱们的秘密武器Live Templates了。

瞧瞧Live Templates

Live Templates实战:更优雅实现自定义View的构造方法

Live Templates能够简单理解为实时模板,代码编写中能够动态依据输入的关键字选择性的插入模板内容,比方常见的:

Live Templates实战:更优雅实现自定义View的构造方法

像咱们常见的logdlogikeyconstvarval等等快速生成模板代码的指定都是经过Live Templates进行完成的,比方:

  • logi

    Live Templates实战:更优雅实现自定义View的构造方法

  • key

    Live Templates实战:更优雅实现自定义View的构造方法

所以上面一大堆自定义View的结构办法的模板代码当然也能够运用Live Templates完成。

Live Templates自定义customView指令

Live Templates实战:更优雅实现自定义View的构造方法

  1. 指定声明的指令称号;

  2. 对声明的指令的功用描绘;

  3. 自定义View的模板代码,其间运用$CLASS_NAME$PARENT_CLASS别离代表自定义View的类名和承继的父类类名,相当于占位符,需求开发者调用该指令时手动编写指定,这儿张贴一份具体的内容,方便大家复制:

    class $CLASS_NAME$ @JvmOverloads constructor(
        context: Context,
        attributes: AttributeSet? = null,
        defStyleAttr: Int = 0
    ): $PARENT_CLASS$(context, attributes, defStyleAttr) {
    }
    
  4. 指定该指令收效的文件范围,这个不设置指令或许不会收效,比方当时我指定的为kotlin:

    Live Templates实战:更优雅实现自定义View的构造方法

经过上面的配置customView指令就收效了,咱们看下效果:

Live Templates实战:更优雅实现自定义View的构造方法

当从弹出的菜单中点击该指令时,就会直接生成下面的代码:

Live Templates实战:更优雅实现自定义View的构造方法

其间两个红框中的方位便是上面$CLASS_NAME$PARENT_CLASS别离对应的方位占位符,需求开发者手动编写完成。

Edit variables进一步优化

如果你感觉运用了customView指令,还需求手动编写上面两个红框中的内容仍是太费事,那这儿咱们还能够更进一步优化:

比方第一个红框中确认要自定义View的类名便是当时文件名,那咱们能够把第一个红框中的内容也交给Live Templates生成,主要便是借助Live Templates中的Edit variables功用

仔细的读者有没有发现,Live Template功用框中咱们还有一个功用没运用到:

Live Templates实战:更优雅实现自定义View的构造方法

点开看下:

Live Templates实战:更优雅实现自定义View的构造方法

之前讲过,CLASS_NAMEPARENT_CLASS便是咱们在Template text内容区中设置的两个变量,别离代表自定义View的类名以及承继的父类称号。

CLASS_NAME对应变量如果确认了便是文件名,直接在上面Expression一一览中指定其生陈规矩为fileNameWithoutExtension(),这样输入customView时,Live Templates就会主动协助咱们将CLASS_NAME变量替换成当时的文件名:

Live Templates实战:更优雅实现自定义View的构造方法

第一个红框中便是自定生成的类名,咱们只需求编写第二个红框中需求承继哪个父类即可。

顺便提一句,Edit variables面板中Expression还有许多其他的表达式生陈规矩:

Live Templates实战:更优雅实现自定义View的构造方法

进一步协助咱们生成模板代码,进步开发效率,感兴趣的能够自行探索。

总结

本篇文章主要以主动生成自定义View的结构办法的模板代码作为切入点,较详细介绍了Live Templates怎样自定义指令及运用。当然了Live Templates的运用场景还有很多很多,想要运用Android Studio进步开发效率的同学必定需求好好了解一下。