我正在颤抖中使用变换来创建滚动轮播,以从各种选项中进行选择。
这使用了ListView.builder
之类的标准元素,除了Transform的父窗口小部件未按比例缩小以适应内容(如此处所示:)之外,它们都可以正常工作。
notice the gaps around the perspective transforms
这是用于生成“卡”的代码(实际上那里有一个卡,但是我已经剥离了它,以尝试使所有内容正确缩放):
return Align(
child: Transform(
alignment: Alignment.center,
transform: mat,
child: Container(
height: 220,
color: color,
width: MediaQuery.of(context).size.width * 0.7,
child: Text(
offset.toString(),
style: TextStyle(color: Colors.white, fontSize: 12.0),
),
),
),
);
}
即使删除了Container的'height'参数(因此所有内容都可以缩放以适合'Text'小部件),包含Transform
小部件的框周围仍然有空隙。
Flutter似乎没有任何文档来说明如果转换了对象,如何重新缩放父对象-这里的任何人都知道或有解决方法的想法?
正如我在您的代码中所见,您为什么使用Align,所以没有设置或使用属性来对齐任何内容。因此,请尝试删除围绕Transform的Align小部件。因为根据文档,Transform就是这样一种小部件,它试图与其子代的大小相同。这样就可以满足您的要求。
有关更多信息,请查看此文档:https://flutter.dev/docs/development/ui/layout/box-constraints
希望对您有帮助!