Есть ли способ сохранить соотношение сторон нескольких виджетов подряд (флаттер)? - PullRequest
1 голос
/ 24 апреля 2020

Я использую строку для выравнивания двух виджетов (видеоконтроллеров) по горизонтали. Используя Expanded и его атрибут flex, я могу разделить доступное пространство. Проблема в том, что высота видео всегда заполняет все вертикальное пространство, поэтому видео растягиваются.

Чего я хочу достичь: enter image description here

Что я пробовал:

Row(
    children: <Widget>[
        Expanded(
            child: AspectRatio (
                child: VideoPlayer(_leftPlayerController),
                aspectRatio: _leftPlayerController.value.aspectRatio,
            ),
            flex: 7, // 70%
        ),
        Expanded(
            child: Align (
                child: AspectRatio (
                    child: VideoPlayer(_rightPlayerController),
                    aspectRatio: _rightPlayerController.value.aspectRatio,
                ),
            ),
            flex: 3, // 30%
        ),
    ],
);

1 Ответ

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

Попробуйте и оставьте отзыв

          LayoutBuilder(
              builder: (context, BoxConstraints constraints) {
                return Container(
                  width: constraints.maxWidth,
                  child: Row(
                    children: <Widget>[
                      Container(
                        width: constraints.maxWidth*0.7,//70%
                        height: (constraints.maxWidth*0.7)/ratio,
                        child: //your videoplayer,
                      ),
                      Container(
                        width: constraints.maxWidth*0.3,
                        height: (constraints.maxWidth*0.3)/ratio,//30%
                        child: //another video player,
                      ),
                    ],
                  ),
                );
              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...