WebView обрезается после определённой точки

Проблема

Я пытаюсь сделать ModalBottomSheet с WebView. Мне нужно, чтобы была возможность его прокручивать. На первый взгляд все выглядит нормально, но после того, как я прокручиваю до определенной точки, я вижу вот это:

WebView

извините, что картинка такая большая :(

Вот код:

if (showBottomSheet) {
    ModalBottomSheet(
        onDismissRequest = {
            showBottomSheet = false
        },
        sheetState = sheetState
    ) {
        LazyVerticalGrid(columns = GridCells.Fixed(1)) {
            item(span = { GridItemSpan(1) }) {
                AndroidView(
                    factory = {
                        WebView(it).apply {
                            layoutParams = ViewGroup.LayoutParams(
                                ViewGroup.LayoutParams.MATCH_PARENT,
                                ViewGroup.LayoutParams.WRAP_CONTENT
                            )
                            webViewClient = object : WebViewClient() {
                                override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
                                    if (request.url != uri) {
                                        context.openUrl(request.url)
                                        return true
                                    } else {
                                        return false
                                    }
                                }
                            }
                            settings.javaScriptEnabled = true
                            loadUrl(uri.toString())
                        }
                    },
                    update = {
                        it.loadUrl(uri.toString())
                    }
                )
            }
        }
    }
}

Что я пробовал:

  • Убрать обертку LazyVerticalGrid (я ее использовал, потому что без этого ничего бы не прокручивалось (нашел здесь)):

    if (showBottomSheet) {
        ModalBottomSheet(
            onDismissRequest = {
                showBottomSheet = false
            },
            sheetState = sheetState
        ) {
            /* LazyVerticalGrid(columns = GridCells.Fixed(1)) {
                item(span = { GridItemSpan(1) }) { */
                    AndroidView(
                        factory = {
                            WebView(it).apply {
                                layoutParams = ViewGroup.LayoutParams(
                                    ViewGroup.LayoutParams.MATCH_PARENT,
                                    ViewGroup.LayoutParams.WRAP_CONTENT
                                )
                                webViewClient = object : WebViewClient() {
                                    override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
                                        if (request.url != uri) {
                                            context.openUrl(request.url)
                                            return true
                                        } else {
                                            return false
                                        }
                                    }
                                }
                                settings.javaScriptEnabled = true
                                loadUrl(uri.toString())
                            }
                        },
                        update = {
                            it.loadUrl(uri.toString())
                        }
                    )
                /*}
            }*/
        }
    }
    
    
  • Сделать:

    settings.useWideViewPort = true
    

Вопрос

Как мне сделать так, чтобы WebView внутри ModalBottomSheet прокручивался правильно и не обрезался?


Ответы (0 шт):