1
resposta

[Projeto] Desafio aceito ;D !

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.

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

1 resposta

Olá Pablo, tudo bem?

Ficou muiito show sua implementação, nota 10 pra documentação e o jeito que você apresentou pra gente, sinta-se à vontade para continuar postando suas conquistas e resultados aqui no fórum :)

É legal deixar esses desafios no seu github para incrementar ainda mais seu portifólio.

Qualquer coisa estarei à disposição, forte abraço e bons estudos !!