flutter - 如何在 z 方向上赋予小部件厚度?
问题描述
我实现了我在这篇中等文章https://medium.com/flutter/perspective-on-flutter-6f832f4d912e 中找到的效果,它允许您在 3d 空间中旋转小部件。我唯一的问题是我所有的小部件在 z 方向上似乎没有厚度,所以会发生这样难看的事情:
我未旋转的徽标如下所示:
这是我用来创建这种旋转效果的代码:
import 'package:flutter/material.dart';
class PerspectiveContainer extends StatefulWidget {
final Widget child;
PerspectiveContainer({Key key, @required this.child}) : super(key: key);
@override
_PerspectiveState createState() => _PerspectiveState();
}
class _PerspectiveState extends State<PerspectiveContainer> {
Offset _offset = Offset.zero;
@override
Widget build(BuildContext context) {
return Transform(
transform: Matrix4.identity()
..setEntry(3, 2, 0.001) // perspective
..rotateX(0.004 * _offset.dy)
..rotateY(-0.004 * _offset.dx),
alignment: FractionalOffset.center,
child: GestureDetector(
onPanUpdate: (details) => setState(() => _offset += details.delta),
onDoubleTap: () => setState(() => _offset = Offset.zero),
child: widget.child,
),
);
}
}
那么是否可以在 z 方向上赋予我的 BINGO 小部件厚度?(宾果徽标是用 Table 小部件制作的)
解决方案
Material Design 有时在这里使用阴影和高程,这会给你一些 3D 外观,尽管它实际上是 2d。https://material.io/design/environment/elevation.html#elevation-in-material-design
Flutter 中的一些 Widget 有一个elevation
属性,例如Card
.
推荐阅读
- python - 如何在 Pytorch 中为图像及其蒙版制作自定义数据集?
- java - 错误:类型不匹配 - 如何使用 spring-mvc 表单保持休眠双向 OneToOne 映射
- node.js - 使用 mongodb 对所有文档求和
- docker - Mounting custom addons odoo docker v.12
- ruby-on-rails - Spree Ecommerce:用户购物车的管理员视图
- java - value not displaying the right result
- scala - 如何在 Scala 中优化此 CountingSort 算法的时序
- autoconf - POSIX Shell 脚本使用 ./configure 引发语法错误
- ssl - TLS 是否支持 IOS/IEC 29192 标准定义的轻量级加密?
- java - 删除 a 的元素
ArrayList-Java