【发布时间】:2019-06-28 14:20:06
【问题描述】:
我正在尝试创建一个带有可变高度项目的轮播。当使用 PageView 或 ListView 进行水平滚动时,我需要给它一个恒定的高度,像这样:
class CarouselVariableHightState extends State<CarouselVariableHight> {
double height = 200;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Carousel')),
body: ListView(
children: <Widget>[
Text('My Carousel'),
Container(
height: height,
child: PageView(
children: <Widget>[
_buildCarouselItem(),
_buildCarouselItem(),
_buildCarouselItem(),
_buildCarouselItem(),
],
),
),
Text('end of List')
],
),
);
}
Widget _buildCarouselItem() {
return Column(
children: [
Container(
color: Colors.red,
height: Random().nextInt(200).toDouble(),
child: Text('Text with random length')
)
]
);
}
}
但我的项目包含文本,我不知道它的长度。我不想限制 CarouselItem 的高度,因为它可能会切断文本。我怎么会有像 PageView 这样的东西,它会根据当前显示的项目调整自己的大小?
我认为一个解决方案可能是获取 CarouselItem 的高度,然后将其设置为 PageView 的高度。但是我想不出一种方法来获取我当前的 Carousel 项目的高度。
有什么想法吗?
【问题讨论】:
-
你找到解决办法了吗?
-
@Johnykutty 不,我打开了这个问题:github.com/flutter/flutter/issues/29749
-
我是从那个问题来到这里的,也没有任何回应:(
-
是的,不幸的是我认为现在没有解决方案