Попытка понять компонент AndroidView Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Попытка понять компонент AndroidView Jetpack Compose

Сообщение Anonymous »

Я не понимаю одной вещи в методе onReset компонента AndroidView Jetpack Compose: говорят, что когда он используется в LazyColumn, LazyVerticalGrid и т. д., метод onReset должен быть переопределен, чтобы предотвратить его нельзя перекомпоновать, чтобы избежать повторного использования представления. Я видел следующий пример:

Код: Выделить всё

@Composable
fun ReusableAndroidViewInLazyColumnSample() {
val urls =
listOf(
"https://developer.android.com/jetpack/compose",
"https://google.github.io/accompanist/",
"https://android-developers.googleblog.com/",
"https://io.google/",
// ...
)
LazyVerticalGrid(columns = GridCells.Adaptive(512.dp)) {
items(urls) { url ->
AndroidView(
factory = { context ->
WebView(context).apply {
settings.javaScriptEnabled = true
webViewClient =
object : WebViewClient() {
// Optional overrides for WebViewClient
}
}
},
modifier = Modifier.fillMaxWidth().aspectRatio(1f),
update = { webView -> webView.loadUrl(url) },
onReset = { webView ->
webView.stopLoading()
webView.loadUrl("about:blank")
webView.clearHistory()
}
)
}
}
}
Но я не понимаю, если метод onReset используется для повторного использования представления, почему в этом примере они используют его для очистки WebView? Я чего-то не понимаю?


Подробнее здесь: https://stackoverflow.com/questions/793 ... ck-compose
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»