程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Flutter 中的布局:包含一个正方形和 3 行文本的行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Flutter 中的布局:包含一个正方形和 3 行文本的行?

开发过程中遇到Flutter 中的布局:包含一个正方形和 3 行文本的行的问题如何解决?下面主要结合日常开发的经验,给出你关于Flutter 中的布局:包含一个正方形和 3 行文本的行的解决方法建议,希望对你解决Flutter 中的布局:包含一个正方形和 3 行文本的行有所启发或帮助;

我想创建以下布局:

Flutter 中的布局:包含一个正方形和 3 行文本的行

这是一个容器,包含一个,子项:

  1. 方形容器,未知高度或宽度
  2. 一个,子项: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,请注明来意。