修复游戏详情页标签后台返回为空时的闪退

This commit is contained in:
chenjuntao
2020-05-18 10:40:30 +08:00
parent 4c2a46875d
commit e1cfccfcc0
2 changed files with 26 additions and 21 deletions

View File

@ -263,11 +263,13 @@ class DescViewModel(application: Application,
if (item.type == DetailEntity.Type.CUSTOM_COLUMN.value) {
item.customColumn?.infoTag?.let {
for (tag in it) {
Picasso.with(getApplication()).load(tag.icon).into(object : Target {
override fun onPrepareLoad(placeHolderDrawable: Drawable?) {}
override fun onBitmapFailed(errorDrawable: Drawable?) {}
override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) {}
})
tryWithDefaultCatch {
Picasso.with(getApplication()).load(tag.icon).into(object : Target {
override fun onPrepareLoad(placeHolderDrawable: Drawable?) {}
override fun onBitmapFailed(errorDrawable: Drawable?) {}
override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) {}
})
}
}
}
}

View File

@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView
import com.gh.base.BaseRecyclerViewHolder
import com.gh.common.util.SpanBuilder
import com.gh.common.util.tryWithDefaultCatch
import com.gh.common.view.CenterImageSpan
import com.gh.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.R
@ -51,22 +52,24 @@ class GameDetailCustomColumnAdapter(context: Context)
color ?: "#000000")
.build()
Picasso.with(mContext).load(icon)
.priority(Picasso.Priority.HIGH)
.into(object : Target {
override fun onPrepareLoad(placeHolderDrawable: Drawable?) {
viewHolder.contentTv.movementMethod = CustomLinkMovementMethod.getInstance()
viewHolder.contentTv.text = spannable
}
override fun onBitmapFailed(errorDrawable: Drawable?) {}
override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) {
val bitmapDrawable = BitmapDrawable(mContext.resources, bitmap)
bitmapDrawable.setBounds(0, 0, DensityUtil.dip2px(12F), DensityUtil.dip2px(12F))
spannable.setSpan(CenterImageSpan(bitmapDrawable), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
viewHolder.contentTv.movementMethod = CustomLinkMovementMethod.getInstance()
viewHolder.contentTv.text = spannable
}
})
tryWithDefaultCatch {
Picasso.with(mContext).load(icon)
.priority(Picasso.Priority.HIGH)
.into(object : Target {
override fun onPrepareLoad(placeHolderDrawable: Drawable?) {
viewHolder.contentTv.movementMethod = CustomLinkMovementMethod.getInstance()
viewHolder.contentTv.text = spannable
}
override fun onBitmapFailed(errorDrawable: Drawable?) {}
override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) {
val bitmapDrawable = BitmapDrawable(mContext.resources, bitmap)
bitmapDrawable.setBounds(0, 0, DensityUtil.dip2px(12F), DensityUtil.dip2px(12F))
spannable.setSpan(CenterImageSpan(bitmapDrawable), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
viewHolder.contentTv.movementMethod = CustomLinkMovementMethod.getInstance()
viewHolder.contentTv.text = spannable
}
})
}
}
}