Estou trabalhando em um aplicativo Flutter onde preciso exibir itens em um gridview de rolagem horizontal . Quero que o [tag:GridView ]se comporte como uma visualização paginada, onde cada "página" rola exatamente por um conjunto de itens (como um pageview ), mas estou tendo problemas com itens sendo cortados.
Visualização de páginaRolagem física para item problema de corte de imagem
Configurei minha gridview com pagescrollphysics para obter um efeito de rolagem paginada, e minha grade está configurada para exibir itens em um formato 3x3. No entanto, quando eu rolo, a próxima "página" começa no meio de um item, resultando em itens sendo parcialmente cortados no lado esquerdo.
Aqui está meu código atual:
GridView.builder(
// controller: controller,
physics: PageScrollPhysics(),
scrollDirection: Axis.horizontal,
itemCount: 9,
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: 2 / 8.80,
mainAxisSpacing: 10,
crossAxisSpacing: 0,
crossAxisCount: 3,
),
itemBuilder: (context, index) {
return Row(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8),
child: Image(
image: AssetImage('assets/images/appicon.png'),
height: 50,
width: 50,
),
),
SizedBox(width: 5),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"App Name",
style: TextStyle(
fontSize: 16,
height: 1,
),
),
Text(
"App Type",
style: TextStyle(
fontWeight: FontWeight.w400,
),
),
],
)
],
);
},
),
Quero que cada rolagem de "página" no GridView exiba exatamente 3 colunas por página e se encaixe perfeitamente no início do próximo conjunto de itens da grade, sem que nenhum item seja cortado ou exibido parcialmente.
O que você procura, eu acho, é um
PageView
.PageView
anima entre páginas de forma semelhante ao exemplo no link que você forneceu.Envolva seu
GridView
com umPageView
"curtir" neste exemplo.