我有一个小部件,其中我想根据小部件的高度来渲染不同数量的行。
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
之外的高度?还是有办法使用另一个小部件来获取绘制时小部件的分配高度?
答案 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