Как добавить BoxDecoration при использовании Positioned - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь добавить рамку к некоторому тексту в следующем виджете:

 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.

Может ли кто-нибудь указать мне, где я ошибаюсь?

1 Ответ

2 голосов
/ 06 мая 2020
  @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 (), что невозможно, поскольку виджет Text () не имеет аргумента с именем child.

...