fix: Recompose QSB on state changes (#7242)

This commit is contained in:
Pun Butrach authored and GitHub committed 2026-09-04 14:08:49 +00:00
1 parent eaa5cb2bb3
commit 3a4bb9a6fd
2 files changed
+26

No files matched your search

@@ -14,6 +14,7 @@ import android.text.style.ForegroundColorSpan
import android.util.AttributeSet
import android.view.KeyEvent
import android.view.MotionEvent
import android.view.View
import android.view.ViewTreeObserver
import android.view.ViewTreeObserver.OnGlobalFocusChangeListener
import android.view.animation.DecelerateInterpolator
@@ -247,6 +248,18 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) :
}
}
// Stop Compose QSB from disappearing
// https://stackoverflow.com/questions/72781705/jetpack-compose-view-not-drawing-when-coming-back-to-fragment/77496737#77496737
qsbShell.addOnAttachStateChangeListener(object : OnAttachStateChangeListener {
override fun onViewAttachedToWindow(v: View) {
requestLayout()
qsbShell.disposeComposition()
}
override fun onViewDetachedFromWindow(v: View) {
qsbShell.disposeComposition()
}
})
val currentPaddingLeft = initialPaddingLeft
val currentPaddingRight = initialPaddingRight
@@ -6,6 +6,7 @@ import android.content.Intent
import android.graphics.Rect
import android.graphics.RectF
import android.util.AttributeSet
import android.view.View
import android.widget.FrameLayout
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
@@ -137,6 +138,18 @@ class LawnQsbLayout(context: Context, attrs: AttributeSet?) : FrameLayout(contex
}
}
// Stop Compose QSB from disappearing
// https://stackoverflow.com/questions/72781705/jetpack-compose-view-not-drawing-when-coming-back-to-fragment/77496737#77496737
composeView.addOnAttachStateChangeListener(object : OnAttachStateChangeListener {
override fun onViewAttachedToWindow(v: View) {
requestLayout()
composeView.disposeComposition()
}
override fun onViewDetachedFromWindow(v: View) {
composeView.disposeComposition()
}
})
addView(
composeView,
LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT),