glide
glide copied to clipboard
View inside onResourceReady is null, in DialogFragment
trafficstars
Glide Version: 4.12.0
Device/Android Version: on some device
Issue details / Repro steps / Use case background: What I expected is when image loaded then the close button will appear. What I facing is when app launched and image loaded, some user cannot click on close button or some crash. bind view using Kotlin synthetic.
Glide load line / GlideModule (if any) / list Adapter code (if any):
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//set dialog full screen
dialog?.let {
it.apply {
requestWindowFeature(Window.FEATURE_NO_TITLE)
window?.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT)
window?.setBackgroundDrawableResource(android.R.color.transparent)
}
setStyle(STYLE_NO_INPUT, android.R.style.Theme)
}
arguments?.let {
popData = PopupData(
it.getInt(POPUP_ID, 0),
it.getString(IMG_URL, ""),
it.getString(DEST_URL, "")
)
}
bindView()
}
private fun bindView() {
popData?.let {
Glide.with(context!!)
.load(it.imgUrl)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.apply(RequestOptions().override(1000, 1000))
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
dialog?.dismiss()
return false
}
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
ic_close.visibility = View.VISIBLE
return false
}
})
.into(img_information)
}
img_information.setOnClickListener(this)
view_background.setOnClickListener(this)
ic_close.setOnClickListener(this)
}
Layout XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05" />
<androidx.cardview.widget.CardView
android:id="@+id/info_cardview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:backgroundTint="@android:color/transparent"
app:cardCornerRadius="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/img_information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/ic_close"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="end"
android:layout_marginTop="15dp"
android:layout_marginEnd="15dp"
android:background="@drawable/ic_cancel"
android:visibility="gone" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Stack trace / LogCat:
