Как изменить вид после скрытия SliverPersistentHeader - PullRequest
1 голос
/ 21 января 2020

Мне нужен AppBar, который показывает другое представление при прокрутке вверх. Возможно ли это?

Ниже я пытаюсь это понять. Но ...

Это то, что мне нужно:

при прокрутке вниз:

This is what I need

и когда вверх прокручивал

collapsed

но у меня сейчас так:

Вот как мне это сделать:

class DetailedEvent extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
               body: CustomScrollView(
                 slivers: <Widget>[
                   SliverPersistentHeader(
                     pinned: true,
                     floating: false,
                     delegate: _SliverAppBarDelegate(),//HERE IS CUSTOM HEADER CLASS
                   )

Этот класс используется в MainPage:

class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate {


double scrollAnimationValue(double shrinkOffset) {
    double maxScrollAllowed = maxExtent - minExtent;
    return ((maxScrollAllowed - shrinkOffset) / maxScrollAllowed)
        .clamp(0, 1)
        .toDouble();
  }

  @override
  Widget build(
    BuildContext context,
    double shrinkOffset,
    bool overlapsContent,
  ) {
    final tableTitleStyle =
        TextStyle(color: AppColors.appWhiteDarker, fontSize: 16);

    final tableValueStyle = TextStyle(color: AppColors.pureWhite, fontSize: 16);

    final double visibleMainHeight = max(maxExtent - shrinkOffset, minExtent);
    final double animationVal = scrollAnimationValue(shrinkOffset);
    return Container(
      height: visibleMainHeight,
      width: MediaQuery.of(context).size.width,
      child: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          ...,
          Positioned(
            bottom: 0.0,
            child: SizedBox(
              width: MediaQuery.of(context).size.width,
              child: Column(
                mainAxisSize: MainAxisSize.max,
                children: <Widget>[...],
              ),
            ),
          )
        ],
      ),
    );
  }

  @override...
}

this is what I have now

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