Flutter 如何创建具有内部阴影和渐变填充的卡片

Flutter 如何创建具有内部阴影和渐变填充的卡片,flutter,Flutter,我正在尝试创建一个类似于此图像(左侧的图像)的列表视图: --请注意,列表的每一行上都有一个从右到左的渐变,并且每一行顶部的阴影都是从上面的行投射的 但出于对邪恶的热爱,我不能让弗利特为一个卡片小部件同时绘制渐变和内部阴影(从顶部开始) 在我的脚手架上,我创建了一个列表视图,其中有一堆供孩子们使用的墨水池。每一个墨水池都包含一张卡片,卡片上有一个容器作为其子容器。这些容器包含一行,该行由一堆文本和内容组成 我尝试了很多技巧,为卡片颜色(BG颜色)和BoxShadow(不幸的是,BoxShado

我正在尝试创建一个类似于此图像(左侧的图像)的列表视图:

--请注意,列表的每一行上都有一个从右到左的渐变,并且每一行顶部的阴影都是从上面的行投射的

但出于对邪恶的热爱,我不能让弗利特为一个卡片小部件同时绘制渐变和内部阴影(从顶部开始)

在我的脚手架上,我创建了一个列表视图,其中有一堆供孩子们使用的墨水池。每一个墨水池都包含一张卡片,卡片上有一个容器作为其子容器。这些容器包含一行,该行由一堆文本和内容组成

我尝试了很多技巧,为卡片颜色(BG颜色)和BoxShadow(不幸的是,BoxShadow没有仅为小部件顶部绘制的选项)设置了颜色渐变(从中左到中右)。但到目前为止,没有什么能达到我想要的效果

body: new ListView(
            children: <Widget>[
          new InkWell(
            onTap: () => showContent("Shadows in Flutter? :/"),
            child: new Card(
              elevation: 9.0,
              margin: EdgeInsets.all(0),
              child: new Container(
                  height: 104.0,
                  child: new Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: <Widget>[
                      new Container(

                        padding: EdgeInsets.only(left: 2.0, right: 5.0),
                        child: new Text("John Smith",
                            textAlign: TextAlign.center,
                            style: new TextStyle(
                                color: Color.fromARGB(255, 224, 117, 86),),
                      ),
                    ],
                  ),
                  decoration: new BoxDecoration(
                    boxShadow: [
                      new BoxShadow(
                          color: Colors.black,
                          blurRadius: 5.0,
                          offset: Offset(0, 10.0)
                      ),
                    ],
                    gradient: LinearGradient(
                      begin: Alignment.centerLeft,
                      end: Alignment.centerRight,
                      colors: [
                        const Color.fromARGB(255, 254, 225, 111),
                        const Color.fromARGB(255, 232, 206, 96)
                      ],

                      tileMode: TileMode.clamp,
                    ),
                  )),
            ),
          ),

     ----- put a couple of Inkwell's similar to above
body:newlistview(
儿童:[
新墨水池(
onTap:()=>showContent(“颤振中的阴影:/”,
孩子:新卡(
标高:9.0,
边距:所有边集(0),
子容器:新容器(
高度:104.0,
孩子:新的一排(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
新容器(
填充:仅限边设置(左:2.0,右:5.0),
儿童:新文本(“约翰·史密斯”,
textAlign:textAlign.center,
样式:新文本样式(
颜色:color.fromARGB(255,224,117,86),
),
],
),
装饰:新盒子装饰(
boxShadow:[
新盒影(
颜色:颜色,黑色,
半径:5.0,
偏移量:偏移量(0,10.0)
),
],
梯度:线性梯度(
开始:Alignment.centerLeft,
结束:对齐。中间右侧,
颜色:[
常量颜色。来自argb(255、254、225、111),
常量颜色。来自argb(255、232、206、96)
],
tileMode:tileMode.clamp,
),
)),
),
),
-----放两个类似上面的墨水瓶
阴影画得不好, 我无法使用flutter从Listview上的上部元素绘制一个阴影


那么,有什么方法可以实现我想要的吗?

使用
前景装饰
添加
LinearGradient
这不是一个答案,但可以解决阴影问题

oregroundDecoration: BoxDecoration(
        gradient: LinearGradient(
          begin: Alignment(-1, -1),
          end: Alignment(-1, -0.8),
          colors: [Colors.black26, Colors.transparent],
        ),
      )

是的,它很管用!这个可以和渐变一起使用。