创建窗口小部件时可以访问Flutter窗口小部件的高度吗?

时间:2020-02-01 20:01:24

标签: flutter

我有一个小部件,其中我想根据小部件的高度来渲染不同数量的行。

  Widget handleState(BuildContext context, MyState state) {
    var height = 100;
    return Column(
        children: [
          Text("1. Widget"),
          if (height > 50) Text("2. Widget"),
          if (height > 100) Text("3. Widget"),
          if (height > 150) Text("4. Widget"),
          Text("5. Widget"),
        ]
    );
  }

是否有某种方法可以读取BuildContext之外的高度?还是有办法使用另一个小部件来获取绘制时小部件的分配高度?

1 个答案:

答案 0 :(得分:1)

是的。有LayoutBuilder个小部件。

它类似于using vector_tuple = tuple<vector<int>, vector<double>>; vector_tuple f(){ return std::make_tuple<vector_tuple>(vector<int>(1), vector<double>(1)); } 小部件,但是框架在布局时调用Builder的{​​{1}}函数并提供父小部件的约束。

例如,在LayoutBuilder函数内部,您可以使用build属性来知道父窗口小部件的大小。

builder