Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在Flatter中在容器底部添加阴影?_Flutter_Dart_Containers_Shadow_Box Shadow - Fatal编程技术网

Flutter 在Flatter中在容器底部添加阴影?

Flutter 在Flatter中在容器底部添加阴影?,flutter,dart,containers,shadow,box-shadow,Flutter,Dart,Containers,Shadow,Box Shadow,我有一个简单的屏幕,有一个大约100米高的蓝色容器。我想在容器底部添加阴影或立面 下面是我的代码 import 'package:flutter/material.dart'; import 'package:finsec/utils/strings.dart'; import 'package:finsec/utils/dimens.dart'; import 'package:finsec/utils/colors.dart'; void main() { runApp(new In

我有一个简单的屏幕,有一个大约100米高的蓝色容器。我想在容器底部添加阴影或立面

下面是我的代码

import 'package:flutter/material.dart';
import 'package:finsec/utils/strings.dart';
import 'package:finsec/utils/dimens.dart';
import 'package:finsec/utils/colors.dart';


void main() {
  runApp(new IncomeFragment());
}

class IncomeFragment extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Stack(
        children: <Widget>[
          new Container(
            height: margin_100dp,
            color: colorPrimary,

          ),
          new Container(    //container to  overlay on top of blue container
            alignment: Alignment.topCenter,


            child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[

                Text(
                    zero_amount,
                    style: TextStyle(color: white, fontSize: 40.0, fontWeight: FontWeight.bold)
                ),
              ],
            ),
          )
        ],
    );
  }
}

导入“包装:颤振/材料.省道”;
导入“package:finsec/utils/strings.dart”;
导入“包:finsec/utils/dimens.dart”;
导入“package:finsec/utils/colors.dart”;
void main(){
runApp(新IncomeFragment());
}
类IncomeFragment扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回新堆栈(
儿童:[
新容器(
高度:裕度_100dp,
颜色:colorPrimary,
),
新容器(//要覆盖在蓝色容器顶部的容器
对齐:alignment.topCenter,
子:列(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisSize:mainAxisSize.min,
儿童:[
正文(
零金额,
样式:TextStyle(颜色:白色,字体大小:40.0,字体重量:字体重量。粗体)
),
],
),
)
],
);
}
}
有人能帮我在蓝色容器的底部添加阴影或高程吗

见下图。肖德应该在红色圆圈内


提前感谢

使用容器阴影,如下所示:

decoration: BoxDecoration(
    boxShadow: [
      BoxShadow(
        color: Colors.black,
        offset: Offset(20.0, 10.0),
        blurRadius: 20.0,
        spreadRadius: 40.0,
      ),
    ], 
  ),

根据您的需要控制blurRadius和SpreadRadius

您可以重用堆栈中的第一个容器,该容器有一个名为装饰的属性,它接受BoxEdition类型的小部件,如您在该链接中所见: 在此小部件中,您可以使用boxShadow属性为容器提供自定义阴影,请尝试下一个代码:

new Container(
      height: margin_100dp,
      decoration: BoxDecoration(
          boxShadow: <BoxShadow>[
            BoxShadow(
                color: Colors.black54,
                blurRadius: 15.0,
                offset: Offset(0.0, 0.75)
            )
          ],
        color: colorPrimary
      ),
    ),
新容器(
高度:裕度_100dp,
装饰:盒子装饰(
boxShadow:[
箱形阴影(
颜色:颜色。黑色54,
半径:15.0,
偏移量:偏移量(0.0,0.75)
)
],
颜色:原色
),
),

或者,您可以使用包含高程属性的材质小部件包装容器小部件,以提供阴影效果

Container(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Material(
                elevation: 15.0,
                child: Container(
                  height: 100,
                  width: 100,
                  color: Colors.blue,
                  child: Center(child: Text("Material",style: TextStyle(color: Colors.white),)),
                ),
              ),
              SizedBox(width: 100,),
              Container(
                height: 100,
                width: 100,
                decoration: BoxDecoration(
                    boxShadow: <BoxShadow>[
                      BoxShadow(
                          color: Colors.black54,
                          blurRadius: 15.0,
                          offset: Offset(0.0, 0.75)
                      )
                    ],
                    color: Colors.blue
                ),
                child: Center(child: Text('Box Shadow',style: TextStyle(color: Colors.white))),
              ),
            ],
          ),
        ),
容器(
孩子:排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
材料(
标高:15.0,
子:容器(
身高:100,
宽度:100,
颜色:颜色,蓝色,
子:居中(子:文本(“材质”,样式:文本样式(颜色:Colors.white),),
),
),
尺寸箱(宽度:100,),
容器(
身高:100,
宽度:100,
装饰:盒子装饰(
boxShadow:[
箱形阴影(
颜色:颜色。黑色54,
半径:15.0,
偏移量:偏移量(0.0,0.75)
)
],
颜色:颜色。蓝色
),
子:居中(子:文本('框阴影',样式:TextStyle(颜色:Colors.white)),
),
],
),
),
图片:


上面显示了两个小部件之间的区别。希望这有帮助

是的,BoxShadow可以解决这个问题,但不是手动添加BoxShadow列表,而是在flift callkElevationToShadow中有一个方便的映射,它将高程键映射到预定义的BoxShadow列表。它也是基于定义的

容器(
身高:60.0,
装饰:盒子装饰(
boxShadow:kElevationToShadow[4],
颜色:主题.of(上下文).bottomAppBarColor,
),
孩子:。。。
);

您还可以使用卡片小部件