繁体   English   中英

Flutter 容器在背景图像上写入文本

[英]Flutter container write text over background image

我想做一个像下面这样的设计

在此处输入图像描述

我用背景图像构建基本布局。 以下是实现这一目标的代码。 现在我想把“杂货店”文本放在这张图片和其他小部件的顶部。 我怎样才能做到这一点?

Widget build(BuildContext context) {
return Container(
  height: 190.0,
  width: size.width,
  margin: const EdgeInsets.symmetric(
    horizontal: 16.0,
  ),
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.stretch,
    children: <Widget>[
      Expanded(
        child: Row(
          children: <Widget>[
            Expanded(
              child: Container(
                width: size.width,
                decoration: BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.circular(11.0),
                  image: DecorationImage(
                    image: NetworkImage(https://www.exampledomain.com/images/background.jpg),
                    fit: BoxFit.cover,
                  ),
                ),
                // child: ????
                
              ),
            ),
          ],
        ),
      ),
    ],
  ),
);}

Stack / Align是你的朋友。

看看这里https://api.flutter.dev/flutter/widgets/Stack-class.html

这是一个基本示例(基于您的代码):

  Widget build(BuildContext context) {
    return Stack(
      children: [
        Align(
          alignment: Alignment.center,
          child: Container(
            alignment: Alignment.center,
            color: Colors.red,
            height: 190.0,
            width: size.width,
            margin: const EdgeInsets.symmetric(
              horizontal: 16.0,
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Expanded(
                  child: Row(
                    children: <Widget>[
                      Expanded(
                        child: Container(
                          width: size.width,
                          decoration: BoxDecoration(
                            color: Colors.white,
                            borderRadius: BorderRadius.circular(11.0),
                            image: DecorationImage(
                              image: NetworkImage(
                                  "http://www.exampledomain.com/images/background.jpg"),
                              //fit: BoxFit.cover,
                            ),
                          ),

                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ),
        Align(
          alignment: Alignment.center,
            child: Text("Grocery store"))
      ]
    );
  }
child: Container(
                width: size.width,
                decoration: BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.circular(11.0),
                  image: DecorationImage(
                    image: NetworkImage(https://www.exampledomain.com/images/background.jpg),
                    fit: BoxFit.cover,
                  ),
                ),
                child: Text('Grocery store'),
                //padding: <-- Using to shift text position a little bit for your requirement
              ),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM