Kotlin中的utils有何替代选择?

时间:2019-07-14 00:14:53

标签: android kotlin kotlin-extension

我有这段代码在3个地方重复

      if (orientation == AppConstants.LANDSCAPE) {
        width = 
        height = 
      }else{
        width = 
        height = 
      }
      imageUrl.let {
        val options = RequestOptions()
            .centerCrop()
            .override(width, height)
        Glide.with(context)
            .load(Uri.parse(imageUrl))
            .apply(options)
            .into(cardView.mainImageView)
      }

我不知道哪一种最佳解决方案是根据方向计算宽度和高度的代码? 我认为我不能用扩展功能代替它

3 个答案:

答案 0 :(得分:0)

我不确定计算部分,但是如果要创建实用程序类,可以按如下方式创建MyUtils.kt

object MyUtils {

    fun myFunction(imageUrl: String) {
        // Your code above...
    }

    ...
}

您以后可以像这样调用它:

MyUtils.myFunction(imageUrl);

答案 1 :(得分:0)

通过获取class的实例来创建简单的类和调用方法。无需使其静态化,以避免不必要的增加应用程序内存负担。

答案 2 :(得分:0)

您可以创建如下功能:

fun getWidthHeight() = if (orientation == AppConstants.LANDSCAPE) {
    Pair(45, 86)
} else {
    Pair(78, 35)
}

您可以这样调用此函数:

val (width, height) = getWidthHeight()