我有一张卡片清单,但是当我更改卡片的宽度时,它仍然与父容器的宽度相同。我尝试用大小合适的盒子或容器包装listview,card甚至scrollView,但没有任何效果。
Container(
height: MediaQuery.of(context).size.height * 0.6,
width: MediaQuery.of(context).size.width * 0.8,
decoration: BoxDecoration(
color: kWhiteColor,
borderRadius: BorderRadius.all(
Radius.circular(MediaQuery.of(context).size.height * 0.02)),
),
child: Padding(
padding:
EdgeInsets.all(MediaQuery.of(context).size.height * 0.015),
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
return SizedBox(
width: MediaQuery.of(context).size.width*0.001,
height: MediaQuery.of(context).size.height*0.3,
child: Card(
color: Colors.black,
),
);
},
),
),
),
),
后面的白卡是父母,或者我们可以说最外面的容器。
答案 0 :(得分:2)
用Align
小部件包裹孩子
return Align(
alignment: Alignment.centerRight, //or choose another Alignment
child: SizedBox(
width: MediaQuery.of(context).size.width*0.001, //you sure it should be 0.001?
height: MediaQuery.of(context).size.height*0.3,
child: Card(
color: Colors.black,
),
),
);
答案 1 :(得分:1)
可以这样做
itemBuilder: (BuildContext context, int index) {
return Align( // wrap card with Align
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.1,
child: Card(