Flutter 在颤振中动态指定图像
如何在颤振中动态指定图像?例如:Flutter 在颤振中动态指定图像,flutter,dart,Flutter,Dart,如何在颤振中动态指定图像?例如: final-topContent=Stack( 儿童:[ 容器( 填充:仅限边缘设置(左:10.0), 高度:MediaQuery.of(上下文).size.height*0.5, 装饰:新盒子装饰( 图片:新装饰图片( 图像:新资产(lesson.imagePath), 适合:BoxFit.cover, ), )), 容器( 高度:MediaQuery.of(上下文).size.height*0.5, 填充:所有边缘设置(40.0), 宽度:MediaQuer
final-topContent=Stack(
儿童:[
容器(
填充:仅限边缘设置(左:10.0),
高度:MediaQuery.of(上下文).size.height*0.5,
装饰:新盒子装饰(
图片:新装饰图片(
图像:新资产(lesson.imagePath),
适合:BoxFit.cover,
),
)),
容器(
高度:MediaQuery.of(上下文).size.height*0.5,
填充:所有边缘设置(40.0),
宽度:MediaQuery.of(context).size.width,
装饰:盒子装饰(颜色:color.fromRGBO(58,66,86,9)),
子:SingleChildScrollView(
控制器:\ u滚动控制器,
儿童:中心(
child:topContentText,
),
),
),
定位(
左:8.0,
排名:60.0,
孩子:InkWell(
onTap:(){
Navigator.pop(上下文);
},
子:图标(Icons.arrow\u back,颜色:Colors.white),
),
)
],
);
现在,我想动态更改课程开始处的图像。imagePath。我试图使用setState()
,但它给了我一个错误:
此处的表达式属于void类型,无法使用
图像:设置状态(){
如果(某些条件){
返回新的AssetImage(lesson.imagePath);
}
}),
您的设置状态调用错误!最简单的方法是将图像作为小部件的状态,并在setState
调用中更新此图像<代码>设置状态方法不会返回任何内容,它只是重建小部件
在您的_WidgetState类中,您声明为成员:
AssetImage _imageToShow;
您可以在initState
方法中提供初始映像
@override
initState(){
_imageToShow = AssetImage('youAssetImage');
}
您的容器小部件应声明为:
Container(
padding: EdgeInsets.only(left: 10.0),
height: MediaQuery.of(context).size.height * 0.5,
decoration: new BoxDecoration(
image: new DecorationImage(
image: _imageToShow,
fit: BoxFit.cover,
),
)),
),
要使用setState call更新图像,您只需:
void updateImage() {
setState ((){
if (someCondition) {
_imageToShow = new AssetImage(lesson.imagePath);
}
});
}
但请记住,必须调用
updateImage
方法 上述解决方案也可以使用。您可以设置名称数组,也可以在资产文件夹中设置相同的图像名称,还可以动态选择要使用的图像。
假设在你的例子中,你有一个课程列表。
var lesson=['a','b','c']
在“资源”文件夹中,为图像指定相同的名称。(不要忘记更新pubspec.yaml文件)
然后在AssetImage中,您可以给出可以动态选择的路径
图像:AssetImage('assets/${lesson[index]}.jpg'))
记住给图片起相同的名字,就像这里给图片起的a、b和c一样
同样的扩展也可以像here.jpg那样给出
图像:AssetImage('assets/${lesson[index]}.jpg'))