0

为什么这段代码隐藏了容器的孩子以及如何解决这个问题。我无法在一侧设置边框半径,在一侧或两侧设置边框

Container(
          child: Text(
            "Test",
            style: TextStyle(
              color: Theme.of(context).primaryColor,
              fontWeight: FontWeight.w800,
              fontFamily: "GE",
              fontSize: 30.0,
            ),
          ),
          width: double.infinity,
          height: 100.0,
          padding: EdgeInsets.symmetric(vertical: 100.0, horizontal: 100.0),
          decoration: BoxDecoration(
            color: Colors.grey[800],
            borderRadius: const BorderRadius.only(
              bottomLeft: const Radius.circular(50.0),
            ),
            border: Border(
              top:
                  BorderSide(width: 16.0, color: Colors.lightBlue.shade600),
              bottom:
                  BorderSide(width: 16.0, color: Colors.lightBlue.shade900),
            ),
          ),
        )
4

1 回答 1

0

因为垂直填充与容器的高度相同,因此没有空间显示文本。

您需要减少填充或增加容器高度。

=== 根据评论更新:

您不能同时添加两者borderborderRadius因此您会收到错误消息。

由于您似乎只想在底部和顶部添加颜色,因此您可以使用 a boxShadowwith borderRadius

decoration: BoxDecoration(
  color: Colors.grey[800],
  borderRadius: const BorderRadius.only(
    bottomLeft: const Radius.circular(50.0),
  ),
  boxShadow: [
    BoxShadow(color: Colors.lightBlue.shade900, spreadRadius: 3),
  ],
),

如果您想在顶部使用与底部不同的颜色,则必须解决此问题。您可以做到这一点的一种方法是抵消阴影,使其仅用作底部边框颜色。然后将 Container 包裹在一个 Column 中,并在其上方添加另一个薄 Container 作为顶部边框颜色,例如:

Column(
  children: [
    // top border color
    Container(
      height: 5.0,
      color: Colors.lightBlue.shade600,
    ),
    Container(
      child: Text(
        "Test",
        style: TextStyle(
          color: Theme.of(context).primaryColor,
          fontWeight: FontWeight.w800,
          fontFamily: "GE",
          fontSize: 30.0,
        ),
      ),
      width: double.infinity,
      height: 100.0,
      decoration: BoxDecoration(
        color: Colors.grey[800],
        borderRadius: const BorderRadius.only(
          bottomLeft: const Radius.circular(50.0),
        ),
        boxShadow: [
          BoxShadow(
            color: Colors.lightBlue.shade900,
            spreadRadius: 3,
            // offset to act as bottom border color
            offset: Offset(0, 5),
          ),
        ],
      ),
    ),
  ],
),

于 2021-03-19T20:17:10.953 回答