Дочерняя полоса прокрутки влияет на родительскую полосу прокрутки? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть полоса прокрутки на высоком уровне и дочерняя полоса прокрутки на несколько уровней вниз по дереву. При прокрутке ребенка родитель также прокручивает. Просто полоса прокрутки показывает и перемещается в родительском. Это не происходит наоборот. Я пытался обернуть ребенка в детектор жестов, но это не сработало. Кстати, это Web

enter image description here

Это виджет родительского макета (дочерний - то, где будут отображаться дочерние элементы):

Scrollbar(
    controller: layoutScrollController,
    child: SingleChildScrollView(
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          if(title != null) Container(
            height: 67,
            width: MediaQuery.of(context).size.width,
            decoration: BoxDecoration(
                color:Theme.of(context).brightness == Brightness.dark ? GatheredThemeColors.light[850] : Colors.white,
                border: Border(
                    bottom: BorderSide(
                        color: Theme.of(context).brightness == Brightness.dark ? GatheredThemeColors.light[800] : GatheredThemeColors.light[200],
                        width: 1
                    )
                )
            ),
            padding: EdgeInsets.all(20),
            child: Text(title,style: Theme.of(context).textTheme.headline1,),
          ),
          Container(
            padding: EdgeInsets.all(20),
            constraints: BoxConstraints(minHeight: 200),
            child: child,
          ),
        ],
      ),
    ),
  );
}

На изображении ниже область «Отчеты» - это дочерний элемент, который вызывает прокрутку родительского элемента. Ищите ReportList. Список отчетов - это виджет ListView.

enter image description here

1 Ответ

0 голосов
/ 07 мая 2020

Это обходной путь, я не могу найти ссылку, но похоже, что команда флаттера надеется это исправить.

Вот оно. Оберните свою полосу прокрутки следующим образом:

NotificationListener<ScrollNotification>(
    onNotification: (notification) => true,
    child: Scrollbar()
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...