Предварительный просмотр JetPack Compose для экрана, который имеет SharedTransitionScope, AnimatedVisibilityScope как паAndroid

Форум для тех, кто программирует под Android
Anonymous
Предварительный просмотр JetPack Compose для экрана, который имеет SharedTransitionScope, AnimatedVisibilityScope как па

Сообщение Anonymous »

У меня есть эта реализация для моего экрана, который использует переход общих элементов < /p>

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

}

@OptIn(ExperimentalSharedTransitionApi::class)
@Composable
fun NoteContent(
state: NoteState,
query: String,
onOrderChange: (NoteOrder) -> Unit,
onToggleOrderSectionClick: () -> Unit,
onDeleteClick: (Note) -> Unit,
onUndoClick: () -> Unit,
navigateToAdd: () -> Unit,
navigateToEdit: (Int, Int) -> Unit,
onQueryChange: (String) ->  Unit,
sharedTransitionScope: SharedTransitionScope,
animatedVisibilityScope: AnimatedVisibilityScope
) {
val snackbarHostState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()
val staggeredGridState = rememberLazyStaggeredGridState()

with(sharedTransitionScope){
Scaffold(
floatingActionButton = {
FloatingActionButton(
onClick = navigateToAdd, containerColor = MaterialTheme.colorScheme.primary
) {
Icon(imageVector = Icons.Default.Add, contentDescription = "Add Note")
}
},
snackbarHost = { SnackbarHost(hostState = snackbarHostState) },
) { padding ->
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 8.dp)
) {

Spacer(modifier = Modifier.height(8.dp))

LazyVerticalStaggeredGrid(
state = staggeredGridState,
columns = StaggeredGridCells.Fixed(2),
modifier = Modifier.fillMaxSize(),
contentPadding = PaddingValues(bottom = 4.dp),
horizontalArrangement = Arrangement.spacedBy(4.dp),
verticalItemSpacing = 4.dp
) {
item(span = StaggeredGridItemSpan.FullLine) {
SearchBar(
query = query,
onQueryChange = onQueryChange,
onToggleOrderSectionClick = onToggleOrderSectionClick
)
}

item(span = StaggeredGridItemSpan.FullLine) {
AnimatedVisibility(
visible = state.isOrderSectionVisible,
enter = fadeIn() + slideInVertically(),
exit = fadeOut() + slideOutVertically()
) {
OrderRadio(modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp, horizontal = 8.dp),
noteOrder = state.noteOrder,
onOrderChange = { order ->
onOrderChange(order)
})
}
}

items(state.notes, key = { it.id ?: 0 }) { note ->
NoteItem(note = note,
modifier = Modifier
.padding(4.dp)
.fillMaxWidth()
.animateItem(
placementSpec = tween(
durationMillis = 300, delayMillis = 0
)
)
.sharedBounds(
rememberSharedContentState(key = "note/${note.id}"),
animatedVisibilityScope = animatedVisibilityScope,
enter = fadeIn(),
exit = fadeOut(),
resizeMode = SharedTransitionScope.ResizeMode.ScaleToBounds()
), // This line adds the placement animation
onDeleteClick = {
onDeleteClick(note)
scope.launch {
val result = snackbarHostState.showSnackbar(
message = "Note deleted", actionLabel = "Undo"
)
if (result == SnackbarResult.ActionPerformed) {
onUndoClick()
}
}
},
onClick = {
note.id?.let { it1 ->  navigateToEdit(it1, note.color) }

})
}
}
}
}

}
}

< /code>
И я хочу сделать предварительный просмотр этого экрана или содержимого экрана, но что для PAS для SharedTransitionScope, параметр AnimatedVisibilityScope в предварительном просмотре < /p>
fun NoteContentPreview() {
NotedTheme {

NoteContent(
state = DummyNote.dummyNoteState,
onOrderChange = {},
query = "",
onToggleOrderSectionClick = { /*TODO*/ },
onDeleteClick = {},
onUndoClick = { /*TODO*/ },
navigateToAdd = { /*TODO*/ },
navigateToEdit = { _, _ -> /*TODO*/ },
onQueryChange = { },
sharedTransitionScope = ,
animatedVisibilityScope =
)
}
}
Кто -нибудь знает, как решить это, не издеваясь от какого -либо параметра, или я должен высмеивать их, чтобы сделать предварительный просмотр экрана?>

Подробнее здесь: https://stackoverflow.com/questions/786 ... imatedvisi

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