颤振 - 带有底部文本字段的容器

Posted

技术标签:

【中文标题】颤振 - 带有底部文本字段的容器【英文标题】:flutter - Container with bottom text field 【发布时间】:2020-06-25 10:12:14 【问题描述】:

我有圆形头像。我想在avatar 的底部添加每个circle's avatar 名称。但我不能这样做。当我运行下面的代码时,text 出现在avatar 上。

我的代码

child: Container(
              height: 60.0,
              width: 60.0,
              margin: EdgeInsets.all(6.0),
              decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(100.0),
                  boxShadow: [
                    new BoxShadow(
                        color: Color.fromARGB(100, 20, 0, 0),
                        blurRadius: 5.0,
                        offset: Offset(5.0, 5.0))
                  ],
                  border: Border.all(
                      width: 2.0,
                      style: BorderStyle.solid,
                      color: Colors.purple),
                  image: DecorationImage(
                      fit: BoxFit.cover,
                      image: NetworkImage(userData[x]["image"]))),
                      child: new Text(userData[x]["name"], style: TextStyle(fontSize: 20.0),),
                      )
                      ));

【问题讨论】:

只需在 Text 小部件周围提供顶部填充。 @JitenBasnet 它不能正常工作。一样。 @jancooth 我更新了答案请检查 【参考方案1】:

如果您尝试这样实现:

然后您可以使用ColumnStack 小部件。 我将Stack 与Align 小部件一起使用。

代码:


Container(
       height: 80.0,
       width: 80.0,
       child: Stack(
        children: <Widget>[
           Container(
             height: 60.0,
             width: 60.0,
             margin: EdgeInsets.all(6.0),
             decoration: BoxDecoration(
               //  shape: BoxShape.circle,
                 borderRadius: BorderRadius.circular(100.0),
                 boxShadow: [
                   new BoxShadow(
                       color: Color.fromARGB(100, 20, 0, 0),
                       blurRadius: 5.0,
                       offset: Offset(5.0, 5.0))
                 ],
                 border: Border.all(
                     width: 2.0,
                     style: BorderStyle.solid,
                     color: Colors.purple),
                 image: DecorationImage(
                     fit: BoxFit.cover,
                     image: NetworkImage("https://image.shutterstock.com/image-photo/cute-baby-girl-sitting-on-260nw-689375770.jpg"))),
                   // child:
           ),
           Align(
             alignment: Alignment.bottomCenter,
             child:  new Text("name", style: TextStyle(fontSize: 20.0),),
           )
         ],
      ),
    )

【讨论】:

@jancooth 快乐是我的 :)【参考方案2】:

您可以尝试以下方法:

Container(
      child: Column(
        children: <Widget>[
          Container(
            height: 60.0,
            width: 60.0,
            alignment: Alignment.bottomCenter,
            margin: EdgeInsets.all(6.0),
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(100.0),
                boxShadow: [
                  new BoxShadow(
                      color: Color.fromARGB(100, 20, 0, 0),
                      blurRadius: 5.0,
                      offset: Offset(5.0, 5.0))
                ],
                border: Border.all(
                    width: 2.0,
                    style: BorderStyle.solid,
                    color: Colors.purple),
                image: DecorationImage(
                    fit: BoxFit.cover,
                    image: NetworkImage(
                        "https://source.unsplash.com/random"))),
          ),
          Text(
            "text....",
            style: TextStyle(fontSize: 16.0),
          )
        ], 
      ),
    )

【讨论】:

【参考方案3】:

您可以使用堆栈小部件,如下所示:-

Container(
          height: 60,
          child: Stack(
            children: <Widget>[
            Container(
            height: 60.0,
            width: 60.0,
            margin: EdgeInsets.all(6.0),
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(100.0),
                boxShadow: [
                  new BoxShadow(
                      color: Color.fromARGB(100, 20, 0, 0),
                      blurRadius: 5.0,
                      offset: Offset(5.0, 5.0))
                ],
                border: Border.all(
                    width: 2.0,
                    style: BorderStyle.solid,
                    color: Colors.purple),
                image: DecorationImage(
                    fit: BoxFit.cover,
                    image: NetworkImage(userData[x]["image"]))),
          ),
              Positioned(
                bottom: 5.0,
                right:5.0
                child: Text(userData[x]["name"], style: TextStyle(fontSize: 20.0),),
              )
            ],
          ),
        )

【讨论】:

您希望在图像底部还是图像下方显示文本? 图片底部 由于文字过大导致文字不能放在底部尝试减小文字大小或增加容器大小

以上是关于颤振 - 带有底部文本字段的容器的主要内容,如果未能解决你的问题,请参考以下文章

在颤振中如果文本内容增加,我想在帖子底部显示更多文本?

表格视图仅滚动到文本字段底部边缘

使用swift 2仅使用顶部和底部边框的文本字段

所有小部件的颤振填充?

带有两个文本字段和两个按钮的 UIAlertView

无法使用颤振形式的重置方法清除文本字段