在Flutter中展开的具有最小高度的窗口小部件

时间:2020-06-30 08:48:50

标签: flutter widget

我的问题的背景:Expanded小部件缩小,如果需要,其子小部件零高度,并忽略其子级约束

目标:防止扩展widget,将其缩小到小于其子大小的 ,以便其小部件不会被破坏。
< / p>

此外,我需要小部件占用所有可用空间并展开其子级。

旁注: Container用于分配高度空间,以使expanded对空间变化做出反应

代码如下:

import 'package:flutter/material.dart';

class MainScreen extends StatelessWidget {
  const MainScreen({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          Expanded(
            child: Card(
              color: Colors.blueAccent,
              child: LimitedBox(
                maxHeight: 200,
                child: Text(
                  'Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text ',
                  style: TextStyle(fontSize: 60, color: Colors.black),
                ),
              ),
            ),
          ),
          Container(
            color: Colors.amberAccent,
            height: 105,
            width: 200,
          )
        ],
      ),
    );
  }
}

这是不需要的电流输出:

Expanded behavior that is required

Expanded正常行为:

Shrinking behavior that is NOT required

1 个答案:

答案 0 :(得分:1)

使用Flexible小部件并以最小高度添加Container,蓝色容器的大小将随着文本的增加而增加。

 Scaffold(
      appBar: AppBar(),
      body: SingleChildScrollView( 
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Flexible(
              child: Container(
                constraints: BoxConstraints(
                    minHeight: 200, minWidth: double.infinity),
                child: Card(
                  color: Colors.blueAccent,
                  child: Text(
                    'Sample Text',
                    style: TextStyle(fontSize: 60, color: Colors.black),
                  ),
                ),
              ),
            ),
            Container(
              color: Colors.amberAccent,
              height: 105,
              width: 200,
            )
          ],
        ),
      )
  ),

输出:

enter image description here