使用chatGPT生成一个带圆角的Container

我在项目中是想实现如图带圆角的Container,使用chatGPT生成步骤如下。

首先,生成渐变色的Container

生成的Container代码如下:

Container(
  margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
  height: 200.0,
  width: double.infinity,
  decoration: BoxDecoration(
    gradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xFF3238C5),
        Color(0xFF6953E9),
      ],
    ),
  ),
)

此时,并没有圆角,所以再告诉AI“再给他左上,右下,左下5个像素的圆角,右上80像素。”

Container(
  margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
  height: 200.0,
  width: double.infinity,
  decoration: BoxDecoration(
    borderRadius: BorderRadius.only(
      topLeft: Radius.circular(5.0),
      bottomLeft: Radius.circular(5.0),
      bottomRight: Radius.circular(5.0),
      topRight: Radius.circular(80.0),
    ),
    gradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xFF3238C5),
        Color(0xFF6953E9),
      ],
    ),
  ),
)

此时我因为做了一些其他的事情,所以我重新打开一个一个窗口,并问

我需要对它的内容增加文字,从左至右,从上至下,写上标题:当前佣金,正文:字号比较大的数字,然后右边有一个提现的按钮。

Container(
  margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
  height: 180,
  decoration: BoxDecoration(
    borderRadius: BorderRadius.only(
      topLeft: Radius.circular(5.0),
      bottomLeft: Radius.circular(5.0),
      bottomRight: Radius.circular(5.0),
      topRight: Radius.circular(80.0),
    ),
    gradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xFF3238C5),
        Color(0xFF6953E9),
      ],
    ),
  ),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Padding(
        padding: const EdgeInsets.only(left: 20),
        child: Text(
          '当前佣金',
          style: TextStyle(
            fontSize: 20,
            fontWeight: FontWeight.bold,
            color: Colors.white,
          ),
        ),
      ),
      Padding(
        padding: const EdgeInsets.only(left: 20, top: 10),
        child: Text(
          '¥ 200.00',
          style: TextStyle(
            fontSize: 40,
            fontWeight: FontWeight.bold,
            color: Colors.white,
          ),
        ),
      ),
    ],
  ),
  alignment: Alignment.centerLeft,
),
可以将这个代码放在最外层的 widget 中,并且将提现按钮放置在 Container 外面。

因为它说将按钮放置在Container外面,所以并没有写按钮。

不,提现的按钮需要放在Container里面,你可以将它改为一个提现的图标,但是必须在Container里面。

Container(
  margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
  height: 180,
  decoration: BoxDecoration(
    borderRadius: BorderRadius.only(
      topLeft: Radius.circular(5.0),
      bottomLeft: Radius.circular(5.0),
      bottomRight: Radius.circular(5.0),
      topRight: Radius.circular(80.0),
    ),
    gradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xFF3238C5),
        Color(0xFF6953E9),
      ],
    ),
  ),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
      Padding(
        padding: const EdgeInsets.fromLTRB(20, 0, 0, 10),
        child: Text(
          "当前佣金",
          style: TextStyle(
            fontSize: 20.0,
            fontWeight: FontWeight.w800,
            color: Colors.white,
          ),
        ),
      ),
      Text(
        "123456789.00",
        style: TextStyle(
          fontSize: 40.0,
          fontWeight: FontWeight.w800,
          color: Colors.white,
        ),
      ),
      Spacer(),
      IconButton(
        icon: Icon(Icons.input, color: Colors.white),
        onPressed: () {
          // Your code here
        },
      ),
    ],
  ),
),

此时样式已经乱了,终于明白为什么它要说建议将按钮放在外面,但是原因我还没有去查找,我就将按钮改成了图标,并继续询问:将按钮改成可以点击的图标。

Container(
  margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
  height: 180,
  decoration: BoxDecoration(
    borderRadius: BorderRadius.only(
      topLeft: Radius.circular(5.0),
      bottomLeft: Radius.circular(5.0),
      bottomRight: Radius.circular(5.0),
      topRight: Radius.circular(80.0),
    ),
    gradient: LinearGradient(
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
      colors: [
        Color(0xFF3238C5),
        Color(0xFF6953E9),
      ],
    ),
  ),
  child: Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween,
    children: [
      Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Padding(
            padding: const EdgeInsets.fromLTRB(20, 30, 0, 10),
            child: Text(
              "当前佣金",
              style: TextStyle(
                fontSize: 20.0,
                fontWeight: FontWeight.w500,
                color: Colors.white,
              ),
            ),
          ),
          Padding(
            padding: const EdgeInsets.fromLTRB(20, 10, 0, 10),
            child: Text(
              "100.0",
              style: TextStyle(
                fontSize: 40.0,
                fontWeight: FontWeight.w800,
                color: Colors.white,
              ),
            ),
          ),
        ],
      ),
      GestureDetector(
        onTap: () {
          // Perform the withdrawal action
        },
        child: Padding(
          padding: const EdgeInsets.fromLTRB(0, 60, 20, 0),
          child: Icon(
            Icons.arrow_forward_ios,
            color: Colors.white,
            size: 48,
          ),
        ),
      ),
    ],
  ),
);

最后的图标为需要再自己修改一下,加个阴影,看看是不是还挺像的。

对了,忘记给Container加上阴影,所以最后再来一下:

Container(
      margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
      height: 180,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.only(
          topLeft: Radius.circular(5.0),
          bottomLeft: Radius.circular(5.0),
          bottomRight: Radius.circular(5.0),
          topRight: Radius.circular(80.0),
        ),
        gradient: LinearGradient(
          begin: Alignment.topLeft,
          end: Alignment.bottomRight,
          colors: [
            Color(0xFF3238C5),
            Color(0xFF6953E9),
          ],
        ),
        boxShadow: [
          BoxShadow(
            color: Colors.black26,
            offset: Offset(0, 7),
            blurRadius: 6.0,
          ),
        ],
      ),

      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Padding(
                padding: const EdgeInsets.fromLTRB(20, 30, 0, 10),
                child: Text(
                  "当前佣金",
                  style: TextStyle(
                    fontSize: 20.0,
                    fontWeight: FontWeight.w500,
                    color: Colors.white,
                  ),
                ),
              ),
              Padding(
                padding: const EdgeInsets.fromLTRB(20, 10, 0, 10),
                child: Text(
                  "100.0",
                  style: TextStyle(
                    fontSize: 40.0,
                    fontWeight: FontWeight.w800,
                    color: Colors.white,
                  ),
                ),
              ),
            ],
          ),
          GestureDetector(
            onTap: () {
              // Perform the withdrawal action
            },
            child: Padding(
              padding: const EdgeInsets.fromLTRB(0, 60, 20, 0),
              child: Icon(

                Icons.arrow_forward_ios,
                color: Colors.white,
                size: 48,
              ),
            ),
          ),
        ],
      ),
    );

最后对比一下,是不是还蛮像的?

猜你喜欢

转载自blog.csdn.net/qq_38358909/article/details/128979648