skip to Main Content

I have a problem with passing image constructor. I passed one image there where I wanted and it automatically added something to the rest, when I didnt want it.

I try to pass it from here

    class LvPopup extends StatelessWidget {
  final String title;
  final String users_info;
  final String? image;
  LvPopup({
    super.key,
    required this.title,
    required this.users_info,
    this.image,
  });

  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Column(
        children: [
          SizedBox(height: 10),
          Column(
            children: [
              Row(
                children: [
                  Text(
                    title,
                    style: TextStyle(color: PaidworkColors.lightTxtColor),
                  ),
                ],
              ),
              SizedBox(
                height: 5,
              ),
              Row(
                children: [
                  Image.asset(image ?? ""),
                  Padding(
                    padding: const EdgeInsets.all(5.0),
                    child: Text(
                      users_info,
                    ),
                  ),
                ],
              )
            ],
          )
        ],
      ),
    );
  }
}

to there

LvPopup(
      title: 'E-mail',
      users_info: 'gmail.com',
    ),
    SizedBox(
      height: 5,
    ),
    LvPopup(
      users_info: 'Johny Bravo',
      title: 'Name and Surname',
    ),
    SizedBox(
      height: 5,
    ),
    LvPopup(
      image: 'assets/images/blue_dot.png',
      users_info: "In the process ",
      title: 'Status',
    ),
    SizedBox(
      height: 5,
    ),
    LvPopup(
      users_info: '+0.00',
      title: 'Earnings(USD)',
    ),

and the problem is that I want image only in:

 LvPopup(
  image: 'assets/images/blue_dot.png',
  users_info: "In the process ",
  title: 'Status',
),

but it throws an error to the rest and it says unable to load asset, when I dont want to pass image to the rest LvPopup only to that "Status"

here is an image:

err img

2

Answers


  1. You have an error in the line
    Image.assets(image ?? "")
    if the variable image is null, then you are trying to show an image along the path with an empty string and you will get an error,
    it’s better to try this

    image==null ?  null :  Image.assets(image)
    
    Login or Signup to reply.
  2. if image is null display SizedBox()

    Row(
            children: [
              image != null ? Image.asset(image) : SizedBox(),
              Padding(
                padding: const EdgeInsets.all(5.0),
                child: Text(
                  users_info,
                ),
              ),
            ],
          )
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search