-
Notifications
You must be signed in to change notification settings - Fork 1
Delegated Properties (val xxx by yyy)
燒餅 edited this page Aug 19, 2017
·
1 revision
为了让各种资源、视图(View)变量的值所对应的功能更加清晰明了,我们一般会将变量命名为相应的名字。Kotlin 中的 Delegated Properties 特性则可以让数据直接绑定到变量中,使开发效率更高,不必重复编写赋值语句,节省时间。
在 Activity/Fragment/View 中,也许你会使用 val xxxView by lazy { findViewById<XXXView>(R.id.xxx_view) } 来懒加载 View。
Kotlinyan 继承 ReadOnlyProperty 编写了一些相同效果的函数。
例如(Activity):
private val viewPager: ViewPager by lazyFindNonNullView(R.id.view_pager)有时我们会重复利用一些资源常量,需要反复从 Resource 中 getXXXX(id)
使用 Kotlinyan,你可以将它直接变为一个变量。
例如:
private val TITLE by stringRes(R.string.title)
private val ICON by drawableRes(R.drawable.icon)