是否有办法保持一个Row(Flutter)中多个Widgets的纵横比?

我正在使用一个Row来水平排列两个Widgets(VideoControllers)。使用 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%
        ),
    ],
);

解决方案:

试试这个并给出反馈

          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,
                      ),
                    ],
                  ),
                );
              }

给TA打赏
共{{data.count}}人
人已打赏
未分类

自动公布员额

2022-9-9 4:13:21

未分类

错误:无法在只读事务中执行UPDATE。

2022-9-9 4:13:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索