fix: Recompose QSB on state changes (#7242)
This commit is contained in:
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),
|
||||
|
||||
Reference in new issue
Block a user