type 'String' is not a subtype of type 'ImageProvider'
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();
}
flutter flutter-layout
add a comment |
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();
}
flutter flutter-layout
add a comment |
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();
}
flutter flutter-layout
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();
}
flutter flutter-layout
flutter flutter-layout
asked Nov 19 '18 at 7:45
DK15DK15
12111
12111
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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 '18 at 8:55
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 '18 at 8:55
add a comment |
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 '18 at 8:55
add a comment |
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 '18 at 8:30
Chris ReynoldsChris Reynolds
3,711178
3,711178
Great !! that fixed the issue.
– DK15
Nov 19 '18 at 8:55
add a comment |
Great !! that fixed the issue.
– DK15
Nov 19 '18 at 8:55
Great !! that fixed the issue.
– DK15
Nov 19 '18 at 8:55
Great !! that fixed the issue.
– DK15
Nov 19 '18 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.
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