大佬教程收集整理的这篇文章主要介绍了Flutter 中的布局:包含一个正方形和 3 行文本的行,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建以下布局:
这是一个容器,包含一个行,子项:
方形Container的大小应该是父Container的高度(它的宽度=它的高度)。带有 3 个 Text 小部件的 column 应该扩展到父 Container 的其余部分。
在 Flutter 中可以实现吗?如果是这样,如何?
尝试创建自定义小部件:
class BoxWidget extends StatelessWidget {
BoxWidget(/*...*/);
Widget build(_) {
return Row(
children: [
AspectRatio(
aspectRatio: 1,child: Container(
decoration: BoxDecoration(
color: Colors.red,),column(
children: [
Text(widget.text1,style: stylE),Text(widget.text2,Text(widget.text3,],);
}
}
,
是的,这是可能的,首先创建一个容器,然后它的子级应该是一行,然后该行的子级应该是另一个充当正方形的容器,然后是具有 3 个文本小部件作为其子级的列.此外,我会建议您将容器作为正方形和列分别包装在扩展小部件中,分别在扩展小部件包装列中将 flex 设置为 3,将容器扩展小部件设置为 flex 为 2。
,是的,这是可能的。这里的技巧是使用 LayoutBuilder
返回父母可以允许的大小。在这里,我使用了 @H_107_47@maxHeight 作为 Red Square Container 的高度和宽度,而 column 占据了其余的宽度。
Container(
width: 500,//parent size
height: 100,//parent size
child: LayoutBuilder(
builder: (context,sizE) {
return Row(
children: [
Container(
color: Colors.red,height: size.maxHeight,width: size.maxHeight
),Expanded(
child: column(
children: [
Expanded(
child: Container(color: Colors.yellow),Expanded(
child: Container(color: Colors.bluE),Expanded(
child: Container(color: Colors.green),]
),);
}),
,
根据“匿名科德”的回答,这是这样做的方法:
return IntrinsicHeight(
child: Row(
children: [
AspectRatio(
aspectRatio: 1.0,child: Container(
decoration: BoxDecoration(
color: Colors.red,Expanded(
child: column(
crossAxisAlignment: CrossAxisAlignment.start,children: [
Text(
'line 1 bla bla bla bla bla bla bla bla bla bla bla bla',overflow: TextOverflow.ellipsis,Text(
'line 2 bla bla bla bla bla bla bla bla',Text(
'line 3',);
以上是大佬教程为你收集整理的Flutter 中的布局:包含一个正方形和 3 行文本的行全部内容,希望文章能够帮你解决Flutter 中的布局:包含一个正方形和 3 行文本的行所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。