В Compose: как визуализировать составное Fun независимо или задержать рендеринг составного FunAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 В Compose: как визуализировать составное Fun независимо или задержать рендеринг составного Fun

Сообщение Anonymous »

Признак: когда я открываю страницу, она на мгновение кажется пустой, а затем отображается нормально.
Причина: ComposeWebView загружается медленно; страница будет ждать загрузки перед отображением всей страницы.
Мое ожидание: когда страница откроется, все элементы управления за пределами ComposeWebView сначала будут отображаться, а затем будут отображаться отдельно после завершения загрузки ComposeWebView.

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

@Composable
fun HomeScreen(navToTest: () -> Unit, navToList: () -> Unit, viewModel: HomeViewModel = hiltViewModel()) {
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()

Scaffold(
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
BackTopAppBar(title = stringResource(R.string.module_main_app_name), navigationBack = {}, scrollBehavior = scrollBehavior)
}
) { contentPadding ->
Column(
modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState())
.padding(contentPadding)
) {
Row(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.horizontalScroll(rememberScrollState()),
verticalAlignment = Alignment.CenterVertically,
) {
Button(
onClick = {
viewModel.requestData()
},
contentPadding = PaddingValues(horizontal = 10.dp),
modifier = Modifier.defaultMinSize(1.dp, 1.dp)
) {
Text(text = "req")
}

Button(onClick = navToList) {
Text(text = "skip list")
}

Button(onClick = navToTest) {
Text(text = "skip Test")
}
}

val imgAddress = "https://pic-go-bed.oss-cn-beijing.aliyuncs.com/img/20220316151929.png"

ImageX(
model = imgAddress,
modifier = Modifier
.fillMaxWidth()
.height(120.dp)
)

ComposeWebView(
modifier = Modifier.fillMaxSize(),
url = "https://github.com/ocnyang"
) {
this.settings.apply {
javaScriptEnabled = true
javaScriptCanOpenWindowsAutomatically = true
}
}
}
}
}
Я попробовал много решений, но ни одно из них не сработало должным образом:
  • Например, я попробовал поместить ComposeWebView в отдельную функцию @Compose;
  • Например, я попробовал заменить существующий столбец на LazyColumn.


Подробнее здесь: https://stackoverflow.com/questions/797 ... ering-of-a
Ответить

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

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

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

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

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