首页 > 解决方案 > 如何使用构造函数的上下文?

问题描述

现在我有实现的类,Behavior并且我在下一个代码中使用上下文,我可以简化它吗?

class FabBehavior: CoordinatorLayout.Behavior<FloatingActionButton> {

    private var myContext: Context? = null
    private val fabDefaultBottomMargin = myContext?.resources?.getDimension(R.dimen.dp_16)?.toInt() ?: 0

    constructor() : super()
    constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
        myContext = context
    }

更新

我也尝试过这样的事情:

class FabBehavior(context: Context, attrs: AttributeSet?): CoordinatorLayout.Behavior<FloatingActionButton>(context, attrs) {

    private val fabDefaultBottomMargin = context.resources?.getDimension(R.dimen.dp_16)?.toInt() ?: 0

    constructor(context: Context) : this(context, null)

标签: androidkotlinandroid-contextbehavior

解决方案


我认为您正在寻找的是:

  class FabBehavior(private val context: Context?, attrs: AttributeSet?) : CoordinatorLayout.Behavior<FloatingActionButton>(context, attrs) {

      fun doSomething() {
       context.invokeMethodOnContext()
    }
}

推荐阅读