Анимация героя вызывает (минимальное) переполнение

Когда Hero содержит столбец с mainAxisSize: MainAxisSize.min, при переходе на новую страницу содержимое переполняется. Это происходит даже при переходе на одну и ту же страницу. Чтобы проиллюстрировать это, рассмотрим довольно нелепый пример ниже. В этом примере я получаю сообщение «RenderFlex переполнен на 0,0000172 пикселя внизу». Как я могу предотвратить такое переполнение при использовании анимации героев?

Пример кода:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hero Overflow',
      theme: ThemeData.light(),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Hero overflow"),
      ),
      body: Center(
        child: Hero(
          tag: "mytag",
          child: Card(
            child: InkWell(
              onTap: () {
                Navigator.of(context).push(
                  PageRouteBuilder(
                    pageBuilder: (context, a , b) => MyHomePage()
                  )
                );
              },
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  Text("Hello world"),
                ],
              )
            ),
          ),
        ),
      )
    );
  }
}

введите здесь описание изображения


person Jesse de Wit    schedule 23.12.2018    source источник


Ответы (1)


Это было вызвано ошибками округления, которые возникли из-за того, что Rect использовал Float32List вместо Float64List. Вы можете ознакомиться с проблемой.

Это было исправлено с помощью этого PR и уже должно быть в stable.

person creativecreatorormaybenot    schedule 25.06.2019
comment
Спасибо, я открыл этот выпуск. Думала, что все еще нужно дополнительное расследование. - person Jesse de Wit; 25.06.2019
comment
@JessedeWit Ответ был адресован не вам, а хотел закрыть этот вопрос и пометить его как ответ. - person creativecreatorormaybenot; 25.06.2019
comment
Судя по всему, PR был отменен, есть ли решение для этого? - person nicowernli; 10.07.2019
comment
@nicowernli Я так не думаю. Где ты это видел? - person creativecreatorormaybenot; 10.07.2019
comment
Об этом здесь все еще продолжается. - person pat64j; 26.07.2019
comment
@ pat64j Он закрыт. Если у вас возникли проблемы, они не должны быть связаны (не по той же причине). - person creativecreatorormaybenot; 26.07.2019