Flutter Animated Switcher, кажется, меняет дочерние размеры - PullRequest
0 голосов
/ 03 декабря 2018

Когда я оборачиваю дочерний элемент CustomPaint в AnimatedSwitcher, этот дочерний виджет больше не учитывает размер внешнего контейнера.

Ниже приведен тестовый код.

С закомментированным переключателем текст появляется, как я хочу, в верхнем левом углу.Раскомментирование переключателя перемещает текст в центр экрана, как если бы SizedBox.expand не присутствовал.

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SizedBox.expand(
          child: CustomPaint(
            painter: Painter(),
//            child: AnimatedSwitcher(
//              duration: Duration(milliseconds: 500),
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Text(
                  '$_counter',
                  style: Theme.of(context).textTheme.display1,
                  key: ValueKey<int>(_counter),
                ),
              ),
            ),
          ),
//    ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }


class Painter extends CustomPainter {
  Paint _bgPaint = Paint()
  ..style = PaintingStyle.fill
  ..color = Colors.lightBlue;
  @override
  void paint(Canvas canvas, Size size) {
    Rect fullScreen = const Offset(0.0, 0.0) & size;
    canvas.drawRect(fullScreen, _bgPaint);
  }
  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return true;
  }
}

Я могу обернуть сам текст в другой SizedBox.expand, но почему AnimatedSwitcher делаетэто необходимо?

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