Содержимое TabBarView попадает под закрепленный TabBar - SliverPersistentHeader - PullRequest
0 голосов
/ 07 ноября 2019

Я занимаюсь разработкой приложения и сейчас сталкиваюсь с одной проблемой. Проблема в том, что содержимое TabBarView попадает под закрепленные TabBar (SliverPersistentHeader) и SliverAppBar. На этой фотографии все задокументировано Вот пользовательский интерфейс, которого я хочу достичь Описанная проблема Здесь мы ясно видим проблему SliverAppBar работает хорошо

Этот интерфейс работает довольно хорошо, за исключением этой проблемы, я попытался обернуть SliverPersistentHeader с SliverSafeArea и SliverOverlapAbsorber, и он не работает. Это случилось ... SliverPersistentHeader, обернутый SliverSafeArea и SliverOverlapAbsorber

SliverOverlapAbsorber(
                    handle: NestedScrollView.sliverOverlapAbsorberHandleFor(
                        context),
                    child: SliverSafeArea(
                      bottom: false,
                      top: false,
                      sliver: SliverPersistentHeader(
                        delegate: _SliverAppBarDelegate(
                          _buildTabBar(),
                        ),
                        pinned: true,
                      ),
                    ),
                  ),


class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate {
  _SliverAppBarDelegate(this._tabBar);

  final PreferredSize _tabBar;

  @override
  double get minExtent => _tabBar.preferredSize.height;
  @override
  double get maxExtent => _tabBar.preferredSize.height;

  @override
  Widget build(
      BuildContext context, double shrinkOffset, bool overlapsContent) {
    return new Container(
      color: Colors.white,
      child: _tabBar,
    );
  }

  @override
  bool shouldRebuild(_SliverAppBarDelegate oldDelegate) {
    return false;
  }
}

Здесь вы можете скачать код всей моей страницы https://ufile.io/xf8qfzjn

...