Android 升级到beta-01后,用Jetpack编写的键盘上的动画和效果被破坏

Android 升级到beta-01后,用Jetpack编写的键盘上的动画和效果被破坏,android,android-jetpack-compose,Android,Android Jetpack Compose,在将完全用Jetpack编写的键盘从Compose versionalpha-11升级到beta-01后,我遇到了一个问题 在升级之前,UI工作得和您预期的一样好。波纹清晰可见。 升级后,动画和效果(如按下按钮)无法正确播放(涟漪效果似乎被卡住)。 看一看: 这是所需的行为以及版本升级之前的样子: 注意:ComposeKeyboardView之外的相同代码工作正常。同样,在喷气式飞机组装前,同样的代码工作得非常好alpha-11和beta-01。 我不确定这是一个bug还是我自己能解决这个问

将完全用Jetpack编写的键盘从Compose version
alpha-11
升级到
beta-01
后,我遇到了一个问题

在升级之前,UI工作得和您预期的一样好。波纹清晰可见。 升级后,动画和效果(如按下按钮)无法正确播放(涟漪效果似乎被卡住)。 看一看:

这是所需的行为以及版本升级之前的样子:

注意:
ComposeKeyboardView
之外的相同代码工作正常。同样,在喷气式飞机组装前,同样的代码工作得非常好
alpha-11
beta-01
。 我不确定这是一个bug还是我自己能解决这个问题。 我感谢任何帮助或提示,以恢复所需的行为

您可以使用以下代码重现该问题:

键盘.kt

@Composable
趣味键盘(){
纵队(
修饰语
.fillMaxWidth()
.高度(200.dp)
.背景(颜色.灰色),
垂直布置=中心布置,
水平对齐=对齐。中心水平对齐
) {
Text(color=color.Black,Text=“这应该类似于键盘”)
按钮(modifier=modifier.width(250.dp),onClick={}){
Text(Text=“A按钮”)
}
}
}
ComposeKeyboardView.kt

类ComposeKeyboardView构造函数(
上下文:上下文,
):AbstractComposeView(上下文){
@组合的
覆盖有趣的内容(){
键盘()
}
}
IMEService.kt


类IMEService:InputMethodService(),LifecycleOwner,ViewModelStoreOwner,
SavedStaterRegistryOwner{
重写onCreateInputView():视图{
val视图=组合键盘视图(此)
窗口!!.window!!.decorView.let{decorView->
ViewTreeLifecycleOwner.set(decorView,此)
ViewTreeViewModelStoreOwner.set(decorView,this)
ViewTreeSavedStateRegistryOwner.set(decorView,this)
}
返回视图
}
//生命周期方法
私有变量lifecycleRegistry:lifecycleRegistry=lifecycleRegistry(此)
覆盖getLifecycle():生命周期{
返回生命周期登记
}
私人娱乐HandleLifeCycleeEvent(事件:Lifecycle.event)=
lifecycleRegistry.handleLifecycleEvent(事件)
重写fun onCreate(){
super.onCreate()
SavedStaterRegistry.performRestore(空)
HandleLifeCycleeEvent(创建时的Lifecycle.Event.ON)
}
重写onDestroy(){
super.ondestory()
HandleLifeCycleeEvent(Lifecycle.Event.ON_销毁)
}
//ViewModelStore方法
private val store=ViewModelStore()
覆盖getViewModelStore():ViewModelStore=store
//SaveStateRegestry方法
private val savedStateRegistry=SavedStateRegistryController.create(此)
覆盖有趣的getSavedStateRegistry():SavedStateRegistry=SavedStateRegistry.SavedStateRegistry
不要忘记将IMEService添加到您的
AndroidManifest.xml


我下载了您的代码,并在Compose的bug跟踪器中看到了。 看起来,如果在
IMEService
类中执行以下操作,动画将正常工作

override-fun-onCreate(){
super.onCreate()
SavedStaterRegistry.performRestore(空)
HandleLifeCycleeEvent(Lifecycle.Event.ON_RESUME)//对不起,我们需要帖子自己站起来,你的帖子在这里,在问题内部。外部站点不能保证存在,只要堆栈溢出问题可能持续。
[...]
dependencies {
    def compose_version = "1.0.0-beta01"  
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling:$compose_version"
    implementation "androidx.activity:activity-compose:1.3.0-alpha03"
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
}