在堆栈小部件中包装文本

时间:2021-02-22 21:19:05

标签: flutter dart

我正在尝试对 Stack 小部件中使用的文本进行换行。

这是我目前所拥有的。如果我用 Text 包裹 Container 并将其包裹在 Expanded 小部件中,它会包裹但不再应用该位置并抛出 Incorrect use of ParentDataWidget。有什么建议么? `

            Stack(
              alignment: Alignment.center,
              children: [
                ShaderMask(
                  shaderCallback: (rect) {
                    return LinearGradient(
                      begin: Alignment.topCenter,
                      end: Alignment.bottomCenter,
                      colors: [Colors.black, Colors.transparent],
                    ).createShader(
                        Rect.fromLTRB(0, 0, rect.width, rect.height));
                  },
                  blendMode: BlendMode.dstIn,
                  child: Image.network(
                    'https://placeimg.com/640/480/any',
                    height: 330,
                    fit: BoxFit.fill,
                  ),
                ),
                Positioned(
                  bottom: 5.0,
                  child: Expanded(
                    child: Container(
                      alignment: Alignment.center,
                      child: Text(
                        widget.content.title.toUpperCase(),
                        style: TextStyle(
                          fontSize: 20.0,
                          fontWeight: FontWeight.bold,
                        ),
                        textAlign: TextAlign.center,
                      ),
                    ),
                  ),
                ),
              ],
            ),

1 个答案:

答案 0 :(得分:0)

使用扩展小部件可以创建行、列或 Flex 的子项...(来自文档 https://api.flutter.dev/flutter/widgets/Expanded-class.html)。

也许它不适用于 Stack。 试着把它放在一个列下。 或者包装到同一列中的容器并使用它们之间的空间。