【问题标题】:How use context from constructor?如何使用构造函数的上下文?
【发布时间】:2019-11-12 10:13:26
【问题描述】:

现在我有实现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)

【问题讨论】:

    标签: android kotlin android-context behavior


    【解决方案1】:

    我认为您正在寻找的是:

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

    【讨论】:

      猜你喜欢
      • 2022-08-14
      • 1970-01-01
      • 2019-07-04
      • 2012-01-30
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      相关资源
      最近更新 更多