Flutter 如何将容器中的图像设置为颤振中的背景
我想设计一个自定义组件卡,一个附加在卡上的图像,标题部分将覆盖在图像部分,描述将添加到图像部分下面。如何在Flatter中覆盖图像上的文本Flutter 如何将容器中的图像设置为颤振中的背景,flutter,dart,background-image,assets,cardview,Flutter,Dart,Background Image,Assets,Cardview,我想设计一个自定义组件卡,一个附加在卡上的图像,标题部分将覆盖在图像部分,描述将添加到图像部分下面。如何在Flatter中覆盖图像上的文本 class CardWithImage extends StatelessWidget { final String title, buttonText; final String subTitle; final String body; final asset; CardWithImage({ this.title,
class CardWithImage extends StatelessWidget {
final String title, buttonText;
final String subTitle;
final String body;
final asset;
CardWithImage({
this.title,
this.subTitle,
this.body,
this.asset,
this.buttonText,
});
@override
Widget build(BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.all(15),
decoration: BoxDecoration(
color: ThemeColors.primaryColor,
borderRadius: BorderRadius.circular(5),
boxShadow: [
BoxShadow(
color: ThemeColors.grey5,
blurRadius: 10,
spreadRadius: 5,
offset: Offset(3, 3),
)
],
),
child: Column(
children: <Widget>[
Image.asset(
asset,
height: 200,
width: MediaQuery.of(context).size.width,
fit: BoxFit.cover,
),
],
),
);
}
}
class CardWithImage扩展了无状态小部件{
最后一个字符串标题buttonText;
最后一串字幕;
最终管柱体;
最终资产;
带图像的卡片({
这个名字,
这个,副标题,,
这个,身体,,
这个,资产,,
这是buttonText,
});
@凌驾
小部件构建(构建上下文){
返回容器(
宽度:MediaQuery.of(context).size.width,
保证金:所有(15),
装饰:盒子装饰(
颜色:颜色。原色,
边界半径:边界半径。圆形(5),
boxShadow:[
箱形阴影(
颜色:ThemeColors.grey5,
半径:10,
扩展半径:5,
偏移量:偏移量(3,3),
)
],
),
子:列(
儿童:[
影像资产(
资产,
身高:200,
宽度:MediaQuery.of(context).size.width,
适合:BoxFit.cover,
),
],
),
);
}
}
使用
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("images/background.png"), fit: BoxFit.cover)),
child:<Widget that needs to be in foreground>
......
容器(
装饰:盒子装饰(
图像:装饰图像(
image:AssetImage(“images/background.png”),fit:BoxFit.cover),
儿童:
......
您可以使用以下代码实现您的愿望卡
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/background.png'),
fit: BoxFit.cover),
),
child: Align(
alignment: Alignment.bottomCenter,
child: Container(
color: Colors.grey.withOpacity(0.3),
height: 50,
width: MediaQuery.of(context).size.width,
child: Align(
alignment: Alignment.centerLeft,
child: Text(
"Title",
),
),
),
),
),
Container(
padding: EdgeInsets.all(10),
child: Text(
"Your Big Text ",
textAlign: TextAlign.left,
),
)
],
),
),
容器(
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
身高:200,
装饰:盒子装饰(
图像:装饰图像(
image:AssetImage('assets/images/background.png'),
安装:BoxFit.盖),
),
子对象:对齐(
对齐:对齐.bottomCenter,
子:容器(
颜色:颜色。灰色。不透明度(0.3),
身高:50,
宽度:MediaQuery.of(context).size.width,
子对象:对齐(
对齐:alignment.centerLeft,
子:文本(
“头衔”,
),
),
),
),
),
容器(
填充:边缘设置。全部(10),
子:文本(
“你的大文本”,
textAlign:textAlign.left,
),
)
],
),
),