请参阅附加的快照。我在颤动中通过容器创建了这样的圆形框。但我正在寻找小部件。颤振有一个小部件吗?

Posted

技术标签:

【中文标题】请参阅附加的快照。我在颤动中通过容器创建了这样的圆形框。但我正在寻找小部件。颤振有一个小部件吗?【英文标题】:See attached snapshot. I have created such circle box through container in flutter. But I am seeking for widget. Do flutter have a widget for it? 【发布时间】:2021-10-10 14:44:43 【问题描述】:

嗨。我附上了一张快照。谁能告诉我如何在一个小部件中获取此圆形图像和下方文本?颤振中有这样的单个小部件吗?而不是使用 3 个小部件列、容器和文本小部件。

[![附加快照][1]] [1]:https://i.stack.imgur.com/TlLwK.png

【问题讨论】:

你试过CircleAvatar吗? IconButton? @HasanAbbasi 我现在尝试了 CircleAvatar。我得到了圆圈框和里面的图像。但是当我在其子属性中放置一个文本框时,它会在圆形框中给出文本而不是在圆形框下方。 @pskink 我现在尝试了 IconButton。但它没有在圆形框中给出图像,因为它没有半径属性,也没有通过颜色属性改变背景颜色。 是的,我知道!您应该在列中使用 circleAvatar 而不是 Container。这是您代码的唯一修改! 【参考方案1】:

试试下面的代码希望它能解决你的问题:

ButtonBar(
              alignment: MainAxisAlignment.spaceAround,
              children: [
                Column(
                  children: [
                    ElevatedButton(
                      onPressed: () ,
                      child: Icon(Icons.check, color: Colors.white),
                      style: ElevatedButton.styleFrom(
                        shape: CircleBorder(),
                        padding: EdgeInsets.all(20),
                        primary: Colors.grey, // <-- Button color
                        onPrimary: Colors.red, // <-- Splash color
                      ),
                    ),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Nike'),
                    ),
                  ],
                ),
                Column(
                  children: [
                    ElevatedButton(
                      onPressed: () ,
                      child: Icon(Icons.add, color: Colors.white),
                      style: ElevatedButton.styleFrom(
                        shape: CircleBorder(),
                        padding: EdgeInsets.all(20),
                        primary: Colors.grey, // <-- Button color
                        onPrimary: Colors.red, // <-- Splash color
                      ),
                    ),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Add'),
                    ),
                  ],
                ),
                Column(
                  children: [
                    ElevatedButton(
                      onPressed: () ,
                      child: Icon(Icons.edit, color: Colors.white),
                      style: ElevatedButton.styleFrom(
                        shape: CircleBorder(),
                        padding: EdgeInsets.all(20),
                        primary: Colors.grey, // <-- Button color
                        onPrimary: Colors.red, // <-- Splash color
                      ),
                    ),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Edit'),
                    ),
                  ],
                ),
                Column(
                  children: [
                    ElevatedButton(
                      onPressed: () ,
                      child: Icon(Icons.menu, color: Colors.white),
                      style: ElevatedButton.styleFrom(
                        shape: CircleBorder(),
                        padding: EdgeInsets.all(20),
                        primary: Colors.grey, // <-- Button color
                        onPrimary: Colors.red, // <-- Splash color
                      ),
                    ),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text('Menu'),
                    ),
                  ],
                ),
              ],
            ),

你的屏幕喜欢 ->

【讨论】:

【参考方案2】:

你可以添加圆形头像来制作你喜欢的图片

             Container(
                  padding: EdgeInsets.only(left: 15, right: 15, top: 10),
                  child: Row(
                    children: [
                      Column(
                        children: [
                          Container(
                            height: 40,
                            width: 40,
                            child: CircleAvatar(
                                backgroundImage: AssetImage("")),
                          ),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: Text('Nike'),
                          ),
                        ],
                      ),
                      Column(
                        children: [
                          Container(
                            height: 40,
                            width: 40,
                            child: CircleAvatar(
                                backgroundImage: AssetImage("")),
                          ),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: Text('Nike'),
                          ),
                        ],
                      ),
                      Column(
                        children: [
                          Container(
                            height: 40,
                            width: 40,
                            child: CircleAvatar(
                                backgroundImage: AssetImage("")),
                          ),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: Text('Nike'),
                          ),
                        ],
                      ),
                      Column(
                        children: [
                          Container(
                            height: 40,
                            width: 40,
                            child: CircleAvatar(
                                backgroundImage: AssetImage("")),
                          ),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: Text('Nike'),
                          ),
                        ],
                      ),
                    ],
                  ),
                ),

【讨论】:

以上是关于请参阅附加的快照。我在颤动中通过容器创建了这样的圆形框。但我正在寻找小部件。颤振有一个小部件吗?的主要内容,如果未能解决你的问题,请参考以下文章

在新门户中通过 powershell 创建 azure 存储容器

在 ASP.NET MVC Core 3.1 中通过 jQuery 为部分视图附加 html 的问题

如何在 iOS 中通过键盘显示 UIView

Docker中通过模板创建镜像,Docker容器仓库及数据管理

可以更改容器背景颜色/颤动颜色的按钮

如何在颤动中通用更改应用栏的字体系列?