Ошибка создания взаимодействия? AndroidView не перерисовывается на Android 25 и ниже

#android #android-jetpack-compose

#Android #android-jetpack-compose

Вопрос:

Я попытался реализовать экран с помощью Compose, но у меня был пользовательский вид Android, который пока не требует переопределения в Compose. Думайте об этом как о шахматной доске (но вместо этого она предназначена для игры в ГО). У меня есть следующий код:

             val context = AmbientContext.current
            val boardView = remember {
                BoardView(context).apply {
                    onTapMove = { listener(BoardCellHovered(it)) }
                    onTapUp = { listener(BoardCellTapped(it)) }
                    drawCoordinates = true
                    drawMarks = true
                    drawLastMove = true
                }
            }
            AndroidView({ boardView },
                    modifier = Modifier
                            .padding(12.dp)
                            .shadow(6.dp, MaterialTheme.shapes.large)
            ) { view ->
                view.apply {
                    boardSize = state.position?.boardSize ?: 9
                    position = state.position
                    isInteractive = state.boardInteractive
                    showCandidateMove(state.hoveredCell, StoneType.BLACK)
                }
            }
 

Последняя строка вызывает недействительность. Это отлично работает на Android 29, но если я попробую это в эмуляторе Android 25 (или ниже), представление отрисовывается ОДИН РАЗ, а затем никогда не перерисовывается, даже если вызывается блок обновления.

Есть ли обходной путь для этой проблемы?

полный код доступен по адресу https://github.com/acristescu/OnlineGo/blob/9630a61a00e84c5a455bf230c406b1914da4c9b5/app/src/main/java/io/zenandroid/onlinego/ui/screens/tutorial/TutorialFragment.kt