Есть ли AppBar во флаттере с полностью динамической c высотой и цветом фона? - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь создать динамическую панель приложения c, когда смещение прокрутки страницы равно 0, цвет фона должен быть прозрачным, значение lo go должно быть белым, а высота - 0, и , когда смещение прокрутки изменяется с 0, требуется переход, чтобы изменить цвет фона на белый, высота до 5 и цвет lo go на красный

The image when scroll offset is 0

And here is when scroll offset is greater than 0

Я уже пробовал этот код:

 @override
  void initState() {
    super.initState();
    _scrollController = ScrollController()
      ..addListener(() {
        setState(() {
          offset = _scrollController.offset;
        });
      });
  }

...

final double transitionColor = min(max(offset, 0), 100) / 100;
final double transitionElevation = min(max(offset, 0), 50) / 10;

LjAppBar.getAppBar(
  brandingColor: offset != 0 ? LjTheme.ljPrimary.withOpacity(transitionColor) : Colors.white,
  backgroundColor: Colors.white.withOpacity(transitionColor),
  elevation: transitionElevation,
),

Но, так медленно, эффекты и приложение и не работает хорошо ... я надеюсь, что кто-то может мне помочь

1 Ответ

0 голосов
/ 18 февраля 2020

Насколько мне известно, единственный способ справиться с этим - использовать SliverAppBar . Щепки во Flutter - это виджеты, которые могут динамически реагировать на различные состояния прокрутки. Проверьте Щепки, демистифицированные для хорошего представления о топи c от Эмили Фортуны из команды Flutter.

В вашем случае, с SliverAppBar, вы можете изменить цвет, высоту, и др c. вашей панели приложения в зависимости от прокрутки вашего списка. Для этого вам понадобится SliverList .

Довольно сложно обернуть голову вокруг виджетов Sliver, но не отчаивайтесь! Как только вы к ним привыкнете, вы сможете добиться того, чего хотите.

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