我想实现一个复杂的布局,它应该在滚动视图中呈现。这意味着我的CustomSingleChildLayout
应该调整自己的大小来 Package 它的孩子。
委托可以确定子级的布局约束,并可以决定子级的位置。委托还可以确定父级的大小,但父级的大小不能依赖于子级的大小。
我觉得这很奇怪!为什么我不能做这样的事情?
class _TreeLayoutDelegate extends MultiChildLayoutDelegate {
Size headerSize;
Size contentSize;
@override
Size getSize(BoxConstraints constraints) {
return Size.fromHeight(headerSize.height + contentSize.height);
}
@override
void performLayout(Size size) {
headerSize = layoutChild(_headerId, BoxConstraints.loose(size));
positionChild(_headerId, Offset.zero);
contentSize = ...
}
@override
bool shouldRelayout(MultiChildLayoutDelegate oldDelegate) {
return false;
}
}
1条答案
按热度按时间gupuwyp21#
这个问题被问到已经很久了,但我希望这能对某些人有所帮助。
我正在开发一个使用CustomMultiChildLayout的小部件,该小部件必须依赖于子对象的大小。
对我有效的解决方案是编辑CustomMultiChildLayout和MultiChildLayoutDelegate的实现。
注意:我只想得到水平对齐的小部件的总宽度。所以这个实现正在努力实现这一点。但是希望它也能为满足其他类似的需求铺平道路。