携手创作,一起生长!这是我参加「日新计划 8 月更文挑战」的第22天,点击检查活动详情
本篇文章介绍怎样运用Android Studio提供的
Live Templates
更优雅完成自定义View的结构办法,说句人话便是:简化自定义View结构参数模板代码的编写,完成主动生成。
问题场景
之前写过一篇文章: 2.@JvmOverloads
快捷完成函数重载, 借助于Kotlin的默许参数+@JvmOverloads
简化自定义View的结构办法编写:
简化是简化了,可是每次写这么一大堆仍是感觉好烦啊,比方忘记AttributeSet
类怎样拼写的了等等。这就得拿出咱们的秘密武器Live Templates
了。
瞧瞧Live Templates
Live Templates
能够简单理解为实时模板,代码编写中能够动态依据输入的关键字选择性的插入模板内容,比方常见的:
像咱们常见的logd
、logi
、key
、const
、var
、val
等等快速生成模板代码的指定都是经过Live Templates
进行完成的,比方:
-
logi
-
key
所以上面一大堆自定义View的结构办法的模板代码当然也能够运用Live Templates
完成。
Live Templates
自定义customView
指令
-
指定声明的指令称号;
-
对声明的指令的功用描绘;
-
自定义View的模板代码,其间运用
$CLASS_NAME$
、PARENT_CLASS
别离代表自定义View的类名和承继的父类类名,相当于占位符,需求开发者调用该指令时手动编写指定,这儿张贴一份具体的内容,方便大家复制:class $CLASS_NAME$ @JvmOverloads constructor( context: Context, attributes: AttributeSet? = null, defStyleAttr: Int = 0 ): $PARENT_CLASS$(context, attributes, defStyleAttr) { }
-
指定该指令收效的文件范围,这个不设置指令或许不会收效,比方当时我指定的为kotlin:
经过上面的配置customView
指令就收效了,咱们看下效果:
当从弹出的菜单中点击该指令时,就会直接生成下面的代码:
其间两个红框中的方位便是上面$CLASS_NAME$
、PARENT_CLASS
别离对应的方位占位符,需求开发者手动编写完成。
Edit variables
进一步优化
如果你感觉运用了customView
指令,还需求手动编写上面两个红框中的内容仍是太费事,那这儿咱们还能够更进一步优化:
比方第一个红框中
确认要自定义View的类名便是当时文件名
,那咱们能够把第一个红框中的内容也交给Live Templates
生成,主要便是借助Live Templates
中的Edit variables
功用
仔细的读者有没有发现,Live Template
功用框中咱们还有一个功用没运用到:
点开看下:
之前讲过,CLASS_NAME
和PARENT_CLASS
便是咱们在Template text
内容区中设置的两个变量,别离代表自定义View的类名以及承继的父类称号。
CLASS_NAME
对应变量如果确认了便是文件名,直接在上面Expression
一一览中指定其生陈规矩为fileNameWithoutExtension()
,这样输入customView
时,Live Templates
就会主动协助咱们将CLASS_NAME
变量替换成当时的文件名:
第一个红框中便是自定生成的类名,咱们只需求编写第二个红框中需求承继哪个父类即可。
顺便提一句,Edit variables
面板中Expression
还有许多其他的表达式生陈规矩:
进一步协助咱们生成模板代码,进步开发效率,感兴趣的能够自行探索。
总结
本篇文章主要以主动生成自定义View的结构办法的模板代码作为切入点,较详细介绍了Live Templates
怎样自定义指令及运用。当然了Live Templates
的运用场景还有很多很多,想要运用Android Studio进步开发效率的同学必定需求好好了解一下。