Skip to content

Instantly share code, notes, and snippets.

@Ahmed-Sellami
Created September 27, 2021 22:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ahmed-Sellami/ca0a06862290f8414a4002808badb168 to your computer and use it in GitHub Desktop.
Save Ahmed-Sellami/ca0a06862290f8414a4002808badb168 to your computer and use it in GitHub Desktop.
@ExperimentalAnimationApi
@Composable
fun Home() {
val slideStates = remember {
mutableStateMapOf<ShoesArticle, SlideState>()
.apply {
shoesArticles.map { shoesArticle ->
shoesArticle to SlideState.NONE
}.toMap().also {
putAll(it)
}
}
}
Scaffold(/* ... */) { innerPadding ->
ShoesList(
modifier = Modifier.padding(innerPadding),
shoesArticles = shoesArticles,
slideStates = slideStates
)
}
}
@ExperimentalAnimationApi
@Composable
fun ShoesList(
modifier: Modifier,
shoesArticles: MutableList<ShoesArticle>,
slideStates: Map<ShoesArticle, SlideState>
) {
val lazyListState = rememberLazyListState()
LazyColumn(
state = lazyListState,
modifier = modifier.padding(top = dimensionResource(id = R.dimen.list_top_padding))
) {
items(shoesArticles.size) { index ->
val shoesArticle = shoesArticles.getOrNull(index)
if (shoesArticle != null) {
key(shoesArticle) {
val slideState = slideStates[shoesArticle] ?: SlideState.NONE
ShoesCard(
shoesArticle = shoesArticle,
slideState = slideState
)
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment