Android Kotlin - 在 ImageView 内加载图像

5 android kotlin android-glide

这是我尝试过的

    Glide
        .with(context)
        .load(imgUrl)
        .listener(object : RequestListener<Drawable>{
            override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
                return false
            }

            override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
                return false
            }

        })
        .into(holder.image)
Run Code Online (Sandbox Code Playgroud)

第一个错误object

对象不是抽象的,也没有实现抽象成员 public Abstract fun onResourceReady(resource: Drawable!, model: Any!, target: Target!, dataSource: DataSource!, isFirstResource: Boolean): Boolean 在 com.bumptech.glide.request 中定义.RequestListener

第二个错误Drawable

注释类 Target 不需要类型参数

第二个第三个错误override

“onResourceReady”不覆盖任何内容

这里有什么问题吗?或者还有其他解决办法吗??

小智 16

发生这些错误是因为您导入了错误版本的 Target 类。您应该从 com.bumptech.glide.request.target.Target 包导入“Target”。

import android.graphics.drawable.Drawable
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target


object : RequestListener<Drawable> {

    override fun onLoadFailed(
        e: GlideException?,
        model: Any?,
        target: Target<Drawable>?,
        isFirstResource: Boolean
    ): Boolean {
        return false
    }

    override fun onResourceReady(
        resource: Drawable?,
        model: Any?,
        target: Target<Drawable>?,
        dataSource: DataSource?,
        isFirstResource: Boolean
    ): Boolean {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)