如何在使用Positioned时添加BoxDecoration?

问题描述 投票:0回答:1

我试图在下面的小工具中为一些文本添加一个边框。

 Widget build(BuildContext context) {
    return Container(
      child: Stack(
        children: <Widget>[
      Positioned(
            bottom: 0,
            top: 70,
            right: 50,
            left: 50,
            child: Text(
              surprises[surpriseNumber]['Surprises'],
              style: TextStyle(fontSize: 20, color: Colors.pink[700]),
              textAlign: TextAlign.center,
            ),
          ),
        ],
      ),
    );
  }

但我不知道该怎么做。根据我在网上找到的答案,我觉得这样做应该可以。

Widget build(BuildContext context) {
    return Container(
      child: Stack(
        children: <Widget>[
      Positioned(
            bottom: 0,
            top: 70,
            right: 50,
            left: 50,
            child: Text(
              surprises[surpriseNumber]['Surprises'],
              style: TextStyle(fontSize: 20, color: Colors.pink[700]),
              textAlign: TextAlign.center,
              child: Container(
                decoration: BoxDecoration(),
              ),
            ),
          ),
        ],
      ),
    );
  }

但它失败了 The named parameter 'child' isn't defined.

有谁能指出我哪里做错了?

flutter dart flutter-layout
1个回答
2
投票
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Stack(
        children: <Widget>[
          Positioned(
            bottom: 0,
            top: 70,
            right: 50,
            left: 50,
            child: Container(
              decoration: BoxDecoration(
                border: Border.all(),
              ),
              child: Text(
                'some text here',
                style: TextStyle(fontSize: 20, color: Colors.pink[700]),
                textAlign: TextAlign.center,
              ),
            ),
          ),
        ],
      ),
    );
  }

这应该可以了! 你只需要将文本小组件包裹在一个容器中,并在BoxDecoration()中提供边框。你将容器放置为Text()widget的子节点,这是不可能的,因为Text()widget没有名为child的参数。

© www.soinside.com 2019 - 2024. All rights reserved.