Как я могу дать толщину виджетов в направлении z? - PullRequest
6 голосов
/ 17 февраля 2020

Я реализовал эффект, обнаруженный в этой статье https://medium.com/flutter/perspective-on-flutter-6f832f4d912e, который позволяет вращать виджеты в трехмерном пространстве. Моя единственная проблема с этим заключается в том, что все мои виджеты, кажется, не имеют толщины в направлении оси z, поэтому случаются такие неприглядные вещи:

App screenshot

Мои необращенные lo go выглядит так:

Original Logo

И вот код, который я использовал для создания этого эффекта вращения:

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

Так можно ли было бы задать толщину моего виджета BIN GO в направлении z? (Ящик go lo go был создан с виджетом Table)

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