- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我创建了一个 CustomMultiChildLayout
以自定义其子项的位置。然后尝试将 CustomMultiChildLayout
放入 Container
中,使用 BoxConstraints(maxHeight: 500)
,然后 CustomMultiChildLayout
总是maxHeight 500 作为高度。它不能根据它的 child 调整它的高度。
那么如何为我的 CustomMultiChildLayout
设置动态高度?如果这不可能,是否还有其他方法可以实现此布局?
背景:
我定义了 3 个小部件,每个小部件都是一个 Container
,我需要自定义它们的位置。
SellerWidget 应位于其他两个小部件的中间。
这是我的代码:
class ProductComboWidget extends StatelessWidget {
final Product _product;
ProductComboWidget(this._product);
@override
Widget build(BuildContext context) {
return Container(
constraints: BoxConstraints(maxHeight: 500),
child: CustomMultiChildLayout(
delegate: _TitleInfoLayout(),
children: <Widget>[
LayoutId(
id: _TitleInfoLayout.title,
child: ProductTitleWidget(_product)
),
LayoutId(
id: _TitleInfoLayout.info,
child: ProductInfoWidget(_product)
),
LayoutId(
id: _TitleInfoLayout.seller,
child: SellerWidget(_product.seller)
),
],
),
);
}
}
class _TitleInfoLayout extends MultiChildLayoutDelegate {
static const String title = 'title';
static const String info = 'info';
static const String seller = 'seller';
@override
void performLayout(Size size) {
final Size titleSize = layoutChild(title, BoxConstraints(maxWidth: size.width));
positionChild(title, Offset(0, 0));
layoutChild(info, BoxConstraints(maxWidth: size.width));
positionChild(info, Offset(0, titleSize.height));
final Size sellerSize = layoutChild(seller, BoxConstraints());
positionChild(seller, Offset(size.width - sellerSize.width - 20, titleSize.height - sellerSize.height / 2));
}
@override
bool shouldRelayout(MultiChildLayoutDelegate oldDelegate) {
return true;
}
}
实际结果:
CustomMultiChildLayout
的高度总是等于 BoxConstraint.maxHeight,它不能根据它的 child 调整它的高度。
这个小部件的底部有一个无用的空白区域。
预期结果:
像其他小部件一样,让它的高度适应它的 child 。
最佳答案
受 Column
和 Stack
实现的启发,我创建了一个自定义布局来完成这项工作。 https://gist.github.com/jxw1102/a9b58a78a80c8e2f54233b418429fa50
关于flutter - 如何在 CustomMultiChildLayout 中拥有动态高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000912/
我创建了一个 CustomMultiChildLayout 以自定义其子项的位置。然后尝试将 CustomMultiChildLayout 放入 Container 中,使用 BoxConstrain
有使用经验的人可以吗 CustomSingleChildLayout 和 CustomMultiChildLayout 类能够详细解释(通过示例)如何使用它们。 我是 Flutter 的新手,正在尝试
我是一名优秀的程序员,十分优秀!