Flutter - Nested Scroll View, содержащий панель приложения Sliver, не работающую с Stateful Widget - PullRequest
0 голосов
/ 04 мая 2020

У меня есть следующий код флаттера (извлечение), контроллеры прокрутки и контроллер вкладок определены и создаются при инициализации.

new Scaffold(
  body: new NestedScrollView(
    controller: _scrollViewController,
    headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
      return <Widget>[
        new SliverAppBar(
          title: new Text(widget.title),
          pinned: true,
          floating: true,
          forceElevated: innerBoxIsScrolled,
          bottom: new TabBar(
            tabs: <Tab>[
              new Tab(text: "STATISTICS"),
              new Tab(text: "HISTORY"),
            ],
            controller: _tabController,
          ),
        ),
      ];
    },
    body: new TabBarView(
      children: <Widget>[
        new StatisticsPage(),
        new HistoryPage(),
      ],
      controller: _tabController,
    ),
  ),
);

Моя цель - создать нечто похожее на это

<img src="https://i.stack.imgur.com/9tNaj.gif"/>

Однако это работает только тогда, когда я использую виджеты без состояния в качестве дочерних элементов моего представления панели вкладок. Я хотел бы использовать класс для отображения моей страницы в соответствии с классом ниже

class MyEasySearch extends StatefulWidget {
  MyEasySearch({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _EasySearchState createState() => _EasySearchState();
}

class _EasySearchState extends State<MyEasySearch>
    with AutomaticKeepAliveClientMixin {}

Однако, когда я использую класс, указанный выше, как дочерний элемент моего представления панели вкладок, панель приложения ленты не прокручивается с точки зрения, если я использую виджет без сохранения состояния или простой текстовый виджет, например, Text ('Образец текста'), он работает как ожидалось.

Кто-нибудь еще сталкивался с этой проблемой?

...