我将元素对称地成对排列。我添加了6张卡用于滚动,但是出现了问题。当您点击搜索时也是如此。请帮助我,我不知道如何解决这个问题
这是我为卡片编写的代码
class Body extends StatelessWidget {
const Body({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
GridView.builder(
itemCount: categoryList.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return CategoryCard(
category: categoryList[index],
);
},
padding: const EdgeInsets.symmetric(
horizontal: 25,
vertical: 30,
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 0.75,
crossAxisSpacing: 20,
mainAxisSpacing: 24,
),
),
],
);
}
只需删除
Column
小部件并直接使用GridView
Widget build(BuildContext context) {
return GridView.builder(
itemCount: categoryList.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return CategoryCard(
category: categoryList[index],
);
},
padding: const EdgeInsets.symmetric(
horizontal: 25,
vertical: 30,
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 0.75,
crossAxisSpacing: 20,
mainAxisSpacing: 24,
),
);
或者,使用
Expanded
小部件。
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: GridView.builder(
itemCount: categoryList.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return CategoryCard(
category: categoryList[index],
);
},
padding: const EdgeInsets.symmetric(
horizontal: 25,
vertical: 30,
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 0.75,
crossAxisSpacing: 20,
mainAxisSpacing: 24,
),
),
),
],
);
}