问题描述
这是我试图转换成 java 的代码,但我不明白,实际上我得到这个代码作为答案,但他/她在 kotlin 中给了我
Glide.with(context)
.load(url)
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?,model: Any?,target: Target<Drawable>?,isFirstResource: Boolean): Boolean {
//Todo: something on exception
}
override fun onResourceReady(resource: Drawable?,dataSource: DataSource?,isFirstResource: Boolean): Boolean {
Log.d(TAG,"OnResourceReady")
dummyShimmerView.visibility = View.GONE
postimageView.visibility = View.VISIBLE
return false
}
})
.into(imgView)
解决方法
您可以使用:
Glide
.with(context)
.load("url")
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable @org.jetbrains.annotations.Nullable GlideException e,Object model,Target<Drawable> target,boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource,DataSource dataSource,boolean isFirstResource) {
dummyShimmerView.setVisibility(View.GONE);
postImageView.setVisibility(View.VISIBLE);
return false;
}
})
.into(imageView);
,
我认为您对 RequestListener
部分感到困惑。 Kotlin 使用 object
表示法来实现接口。所以你的代码将大致翻译成这个
Glide.with(context).load(...)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e,boolean isFirstResource) {
//TODO
return false;
}
@Override
public boolean onResourceReady(Drawable resource,boolean isFirstResource) {
// Todo
return false;
}
})
}).into(imgView);