Здесь вы создали метод void _setImage (), который ничего не возвращает, а также вы не можете использовать его таким образом new AssetImage (_setImage ()) , поэтому вы должны создать метод, подобный String _setImage (), который возвращает String (_backgroundImage), так что вы можете напрямую вызывать этот метод в новом AssetImage (_setImage ()).
Замените свой код на код ниже:
import 'package:flutter/material.dart';
String _backgroundImage;
String _setImage() {
String _mTitle = "${widget.title.data}";
if(_mTitle == "Goodmorrning") {
_backgroundImage = "assets/mobil_hello/goodmorrning.jpg";
} else if(_mTitle == "Good day") {
_backgroundImage = "assets/mobil_hello/goodday.jpg";
}
print("_mTitle: $_mTitle");
print("_backgroundImage: $_backgroundImage");
return _backgroundImage; // here it returns your _backgroundImage value
}
Widget build(BuildContext contest) {
return Scaffold(
body: new Container(
decoration: BoxDecoration(
color: widget.backgroundColor,
image: new DecorationImage(
fit: BoxFit.cover,
image: new AssetImage(_setImage()) //call your method here
),
),
),
);
}