0

有没有办法计算出 SingleChildScrollView 的完整高度,以便可以使用它来设置 ConstrainedBox 高度。我有一个 SingleChildScrollView ,其中包含许多小部件,包括列和一个可以在高度上变化的 Expanded。我尝试了许多不同的技术,包括使用 MediaQuery.of(context).size.height 但这仅提供可见屏幕的高度,而不是不可滚动区域的总高度。

孩子:SingleChildScrollView(控制器:scrollController,孩子:ConstrainedBox(约束:BoxConstraints(maxHeight:MediaQuery.of(context).size.height+MediaQuery.of(context).size.height),

child: Column(
  mainAxisSize: MainAxisSize.min,
  children: [
  ConstrainedBox(
    constraints: BoxConstraints(maxHeight: 295, minHeight: 100.0),
    child: PageView.builder(
    itemCount: videObj.results.length,
    controller: PageController(viewportFraction: 0.8, initialPage: 1),
    itemBuilder: (_, i) {
      String vidKey = videObj.results[i].key;
      String thumbPath = 'https://image.api.playstation.com/vulcan/img/cfn/11307uYG0CXzRuA9aryByTHYrQLFz-HVQ3VVl7aAysxK15HMpqjkAIcC_R5vdfZt52hAXQNHoYhSuoSq_46_MT_tDBcLu49I.png';
      
      ListView.builder(
        padding: const EdgeInsets.all(8),
        itemCount: listseasons.length,
        itemBuilder: (BuildContext context, int index) {
          return Text(listseasons[index].name);
      });

      return Transform.scale(
        scale: i == _index ? 1 : 1,
        child: new InkWell(
        onTap: () {
          launch(videoPath);
        },
        child: Card(
          clipBehavior: Clip.antiAlias,
          child: Column(
            children: [
              Image.network(thumbPath,
              fit: BoxFit.cover,
          ),
          ListTile(
            title: Text(videObj.results[i].name),
          ),
         ],
        )
       ),
      ),
    );
   },
  ),
4

1 回答 1

0

我试图回答,但 imo 你的代码中有很多缺失的部分。您可以使用键获取小部件高度。

GlobalKey globalKey = GlobalKey();

然后将其传递给子示例:

Container(key: globalKey, ... rest of the stuff)

然后在您的代码中,您可以使用: globalKey.currentContext.size.height

于 2021-07-27T05:16:01.833 回答