type 'String' is not a subtype of type 'ImageProvider'
up vote
0
down vote
favorite
I have list of categories and tapping on each of them shows users of that category in new screen. The new screen has an image widget and text widget. I am getting this error if a user has a profile picture, and if there's no profile picture associated with that user, a default picture is shown which doesn't throw this error.
Widget _getProfilePic(Pro pro) {
// If the pro has provided a profile picture
if(pro.profilePhoto.length > 0) {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
// If pro is not available
else {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
}
// Else, provide a default icon
else {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
var profileImg = Image.asset('icons/default_profile_icon.png', height: 60.0);
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
// If the pro is not available
else {
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
}
This is the Pro class model:
class Pro extends User {
String company;
String experience;
double rating;
int reviewCount;
int onlineStatus;
String proId;
Pro();
// Returns a Pro created from JSON
factory Pro.fromJson(Map<String, dynamic> json) {
Pro pro = Pro();
pro.proId = json['ProID'] as String;
pro.fullname = json['FullName'] as String;
pro.company = json['Company'] as String;
pro.experience = json['about'] as String;
pro.rating = json['ReviewAvg'] != null? double.tryParse(json['ReviewAvg']) : 0.0;
pro.reviewCount = json['ReviewCount'];
pro.onlineStatus = json['OnlineStatus'];
pro.profilePhoto = json['profile_pic'] as String;
return pro;
}
}
// Converts a http response body into a List<Pro>
List<Pro> parsePros(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Pro>((json) => Pro.fromJson(json)).toList();
}
add a comment |
up vote
0
down vote
favorite
I have list of categories and tapping on each of them shows users of that category in new screen. The new screen has an image widget and text widget. I am getting this error if a user has a profile picture, and if there's no profile picture associated with that user, a default picture is shown which doesn't throw this error.
Widget _getProfilePic(Pro pro) {
// If the pro has provided a profile picture
if(pro.profilePhoto.length > 0) {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
// If pro is not available
else {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
}
// Else, provide a default icon
else {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
var profileImg = Image.asset('icons/default_profile_icon.png', height: 60.0);
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
// If the pro is not available
else {
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
}
This is the Pro class model:
class Pro extends User {
String company;
String experience;
double rating;
int reviewCount;
int onlineStatus;
String proId;
Pro();
// Returns a Pro created from JSON
factory Pro.fromJson(Map<String, dynamic> json) {
Pro pro = Pro();
pro.proId = json['ProID'] as String;
pro.fullname = json['FullName'] as String;
pro.company = json['Company'] as String;
pro.experience = json['about'] as String;
pro.rating = json['ReviewAvg'] != null? double.tryParse(json['ReviewAvg']) : 0.0;
pro.reviewCount = json['ReviewCount'];
pro.onlineStatus = json['OnlineStatus'];
pro.profilePhoto = json['profile_pic'] as String;
return pro;
}
}
// Converts a http response body into a List<Pro>
List<Pro> parsePros(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Pro>((json) => Pro.fromJson(json)).toList();
}
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have list of categories and tapping on each of them shows users of that category in new screen. The new screen has an image widget and text widget. I am getting this error if a user has a profile picture, and if there's no profile picture associated with that user, a default picture is shown which doesn't throw this error.
Widget _getProfilePic(Pro pro) {
// If the pro has provided a profile picture
if(pro.profilePhoto.length > 0) {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
// If pro is not available
else {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
}
// Else, provide a default icon
else {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
var profileImg = Image.asset('icons/default_profile_icon.png', height: 60.0);
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
// If the pro is not available
else {
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
}
This is the Pro class model:
class Pro extends User {
String company;
String experience;
double rating;
int reviewCount;
int onlineStatus;
String proId;
Pro();
// Returns a Pro created from JSON
factory Pro.fromJson(Map<String, dynamic> json) {
Pro pro = Pro();
pro.proId = json['ProID'] as String;
pro.fullname = json['FullName'] as String;
pro.company = json['Company'] as String;
pro.experience = json['about'] as String;
pro.rating = json['ReviewAvg'] != null? double.tryParse(json['ReviewAvg']) : 0.0;
pro.reviewCount = json['ReviewCount'];
pro.onlineStatus = json['OnlineStatus'];
pro.profilePhoto = json['profile_pic'] as String;
return pro;
}
}
// Converts a http response body into a List<Pro>
List<Pro> parsePros(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Pro>((json) => Pro.fromJson(json)).toList();
}
I have list of categories and tapping on each of them shows users of that category in new screen. The new screen has an image widget and text widget. I am getting this error if a user has a profile picture, and if there's no profile picture associated with that user, a default picture is shown which doesn't throw this error.
Widget _getProfilePic(Pro pro) {
// If the pro has provided a profile picture
if(pro.profilePhoto.length > 0) {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
// If pro is not available
else {
return CircleAvatar(
radius: 30.0,
backgroundImage: pro.profilePhoto.startsWith("./profilepics") ? NetworkImage("" + pro.profilePhoto.substring(2)) : pro.profilePhoto);
}
}
// Else, provide a default icon
else {
// If the pro is available for a video call
if(statusMap[pro.onlineStatus] == "Online, available") {
var profileImg = Image.asset('icons/default_profile_icon.png', height: 60.0);
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
// If the pro is not available
else {
return Image.asset('icons/default_profile_icon.png', height: 60.0);
}
}
This is the Pro class model:
class Pro extends User {
String company;
String experience;
double rating;
int reviewCount;
int onlineStatus;
String proId;
Pro();
// Returns a Pro created from JSON
factory Pro.fromJson(Map<String, dynamic> json) {
Pro pro = Pro();
pro.proId = json['ProID'] as String;
pro.fullname = json['FullName'] as String;
pro.company = json['Company'] as String;
pro.experience = json['about'] as String;
pro.rating = json['ReviewAvg'] != null? double.tryParse(json['ReviewAvg']) : 0.0;
pro.reviewCount = json['ReviewCount'];
pro.onlineStatus = json['OnlineStatus'];
pro.profilePhoto = json['profile_pic'] as String;
return pro;
}
}
// Converts a http response body into a List<Pro>
List<Pro> parsePros(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Pro>((json) => Pro.fromJson(json)).toList();
}
asked Nov 19 at 7:45
DK15
9510
9510
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You probably need to wrap pro.profileImage in NetworkImage in the two places you test for ./profilepics
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You probably need to wrap pro.profileImage in NetworkImage in the two places you test for ./profilepics
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
add a comment |
up vote
1
down vote
accepted
You probably need to wrap pro.profileImage in NetworkImage in the two places you test for ./profilepics
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You probably need to wrap pro.profileImage in NetworkImage in the two places you test for ./profilepics
You probably need to wrap pro.profileImage in NetworkImage in the two places you test for ./profilepics
answered Nov 19 at 8:30
Chris Reynolds
3,646177
3,646177
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
add a comment |
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
Great !! that fixed the issue.
– DK15
Nov 19 at 8:55
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370300%2ftype-string-is-not-a-subtype-of-type-imageproviderdynamic%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown