Чем обусловлено это несоответствие ширины изображения / покрытия между платформами на Flutter? - PullRequest
0 голосов
/ 11 апреля 2020

Я работаю над карточной системой Tinder-esque в моем текущем проекте, и я получил ее, чтобы начать хорошо выглядеть на моем локальном android устройстве. Однако, когда я запускаю на симуляторе iOS, изображение в виджете «Карточка» в итоге не заполняет представление, даже если его ширина установлена ​​на ширину MediaQuery, как вы можете видеть в коде ниже.

Кто-нибудь знает решение этой проблемы, или это просто кросс-платформенная проблема, с которой мне приходится сталкиваться?

ИЗОБРАЖЕНИЯ: Android view iOS view

КОД:

class TinderCard extends StatelessWidget {

  final User user;

  const TinderCard({@required this.user});

  @override
  Widget build(BuildContext context) {
    return Container(
      width: MediaQuery.of(context).size.width,
      child: Card(
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(30)//BorderRadius.vertical(top: Radius.circular(30))
        ),
        elevation: 5,
        child: curvedClipRect(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Image(image: NetworkImage(user.profileUrl), width: MediaQuery.of(context).size.width, alignment: Alignment.center,),
              Padding(
                padding: const EdgeInsets.only(left: 10, bottom: 7, right: 10),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text("${user.firstName} ${user.lastName}", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),),

                    Text("Height: ${user.height} in."),
                    Text(user.location),
                  ]
                ),
              ),
              Row(
                children: <Widget>[
                  IconButton(icon: Icon(Icons.close), onPressed: () {}),
                  Spacer(),
                  IconButton(icon: Icon(Icons.check), onPressed: () {}),
                ],
              )
            ]
          ),
        ),
      ),
    );
  }
}

1 Ответ

2 голосов
/ 11 апреля 2020

Я думаю, это всего лишь разница в соотношении экрана устройства (пропорции ширины и высоты)

Ваш android экран устройства отличается от экрана iOS устройства.

Виджеты для карт и изображений сохраняют пропорции в обоих устройствах.

Проверьте ширину и высоту экрана в обоих ваших эмуляторах.

Выглядит хорошо для меня. Нет кроссплатформенной проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...