flutter - 使容器小部件垂直填充父级

TL;DR 需要容器填充垂直空间,以便它可以充当 ontap 监听器。尝试了大多数解决方案,但似乎没有任何效果。

所以我想做的是让我的容器填满垂直空间,同时仍然具有固定的宽度。 Two first is what I have and third is what I want .这个想法是通过手势 ontap 监听器使容器透明。如果有人对不同的解决方案有更好的想法,请随时提出建议。

    Widget build(BuildContext context) {
    return new GestureDetector(
      onHorizontalDragUpdate: _move,
      onHorizontalDragEnd: _handleDragEnd,
      child: new Stack(
        children: <Widget>[
          new Positioned.fill(           
            child: new Row(
              mainAxisAlignment: MainAxisAlignment.end,
              children: <Widget>[
                new Container(
                  child: new IconButton(                          
                    padding: new EdgeInsets.only(top: 16.0, bottom: 16.0, left: 24.0, right: 24.0),
                    icon: new Icon(Icons.warning),
                    color: Colors.black12,
                    onPressed: () {},
                  )
                ),
              ],
            ),
          ),
          new SlideTransition(
            position: new Tween<Offset>(
              begin:  Offset(0.0, 0.0),
              end: const Offset(-0.6, 0.0),
            ).animate(_animation),
            child: new Card(
              child: new Row(
                children: <Widget>[
                  new Container(
                    width: 20.0,
                    height: 20.0,
                    color: Colors.amber,
                  ),
                  new Expanded(
                    child: new Column(
                      mainAxisSize: MainAxisSize.min,
                      children: <Widget>[
                        
                        _getListTile(),
                        _ifStoplineIsToBeShown()
                      ],
                    ),
                  )
                ],
              )
            ),
          ),
        ],
      )
    );
  }

考虑到我尝试了很多不同的东西但似乎没有任何效果,我很确定我错过了一些东西。

我还上传了一张带有调试画的图片here .

PS。我知道我已将高度设置为固定值,但这是显示容器的唯一方法。

最佳答案

诀窍是结合 IntrinsicHeight 小部件和 RowcrossAxisAlignment: CrossAxisAlignment.stretch

这会强制 Row 的子级垂直扩展,但 Row 将占用尽可能少的垂直空间。

Card(
  child: IntrinsicHeight(
    child: Row(
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: <Widget>[
        Container(
          width: 20.0,
          color: Colors.amber,
        ),
        // Expanded(...)
      ],
    ),
  )
)

https://stackoverflow.com/questions/51155208/

相关文章:

flutter - 无效参数 : Illegal argument in isolate messa

android - Flutter - setState 不更新内部有状态小部件

flutter - Flutter 的垂直文本小部件

flutter - Flutter AppBar 上的渐变背景

dart - 在 Flutter 中将焦点滑动到 TextField

flutter - 小部件间通信

flutter - 导航后打开 flutter 对话框

Flutter - 自定义字体不显示

android-studio - 如何找到 Flutter SDK 的路径

ios - Flutter - SWIFT_VERSION 必须设置为支持的值