Fala galera, segue o cod do desafio ....
Criei uma Screen separada para o desafio e coloquei uns valores monstruosos ai para testes igual a dica do prof ....
@Composable
fun AllProductsScreen() {
val largeItems = List(10000) {
Product("name", price = BigDecimal("9.99"))
}
AllProducts(products = sampleProducts.plus(largeItems))
}
@Preview(showSystemUi = true)
@Composable
fun AllProductsScreenPreview() {
AluveryTheme {
Surface {
AllProductsScreen()
}
}
}
Criei um arquivo chamado ChalengeAllProducts.kt para guardar esse desafio ...
@Composable
fun AllProducts(
products: List<Product>
) {
Column {
Text(
text = "Todos produtos",
Modifier.padding(
start = 16.dp,
end = 16.dp
),
fontSize = 20.sp,
fontWeight = FontWeight(400)
)
LazyVerticalGrid(
columns = GridCells.Adaptive(minSize = 128.dp),
contentPadding = PaddingValues(10.dp),
verticalArrangement = Arrangement.spacedBy(10.dp),
horizontalArrangement = Arrangement.spacedBy(10.dp)
) {
items(products) { product ->
ProductItem(product = product)
}
}
}
}
@Preview//deixei esse preview pq estava codificando e visualizando oq estava rolando na tela !!!
@Composable
fun AllProductsPreview() {
AluveryTheme {
Surface {
AllProducts(
products = listOf<Product>().plus(sampleProducts).plus(sampleDrinks)
.plus(sampleCandies)
)
}
}
}
E por fim alterei na main para chamar minha tela
@Composable
fun App() {
AluveryTheme {
Surface {
// HomeScreen(
// sampleSections
// )
AllProductsScreen()
}
}
}
Como eu não defini a quantidade de linhas para apresentar na tela apenas o tamanho minimo do Grid, no meu cel de teste ficou um pouco grande, mas foi bem legal ver o resultado.
![]( )