我想在Flutter应用程序中使用PageView
来显示银行卡。
问题是PageView
的页面高度类似于match_parent
,并且几乎占据了整个屏幕,但是我想在{{1}内匹配Card
的高度}-类似于Android XML布局中的PageView
。
wrap_content
视图包含:
Card
-别名Text
-卡片图形两者都放在CardView
中的Column
小部件中。
Container
和Text
具有蓝色背景,CardView
具有绿色背景。
Container
这是第一个问题。我正在使用@override
Widget build(BuildContext context) {
return Container(
color: Colors.green,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
color: Colors.blue,
child: Align(alignment: Alignment.centerLeft, child: Text(card.alias))),
Container(
color: Colors.blue,
child: AspectRatio(aspectRatio: 1.586, child: CardView(card: card))),
],
),
);
}
来包装mainAxisSize: MainAxisSize.min
的高度,但是它不能工作,因此绿色正在填充屏幕-但高度应与蓝色相同。
因为单个页面太高,所以PageView也太高了。
Column
使用该代码创建,并且PageView
具有红色背景。:
PageView
,该方法(Widget buildPageView(BuildContext context, AsyncSnapshot<List<WalletCard>> cards) {
return PageView.builder(
physics: AlwaysScrollableScrollPhysics(),
controller: PageController(viewportFraction: 7 / 8),
itemCount: cards.data == null ? 0 : cards.data.length,
itemBuilder: (BuildContext context, int index) {
return Item(index: index, card: cards.data[index]);
});
}
)用于在buildPageView
内提供Widget
。 CardsPageView
通过以下代码显示在屏幕上:
CardsPageView