charts_flutter PanAndZoomBehavior не работает в Scrollview

#flutter #charts

Вопрос:

Если мы реализуем какую-либо диаграмму (будь то линейная диаграмма или столбчатая диаграмма из chart_flutter) и в поведении, мы добавили диаграммы.Функция PanAndZoomBehavior(), панорамирование и масштабирование работают нормально, когда они добавляются на экран без scrollview

Вот иерархия виджетов сценария в виде SingleChildScrollView -> диаграммы.Линейная диаграмма на арене жестов выигрывает только один жест childscrollview, поведение панорамирования и масштабирования не работает google / диаграммы google / диаграммы #677 Эта статья полезна https://medium.com/koahealth/combining-multiple-gesturedetectors-in-flutter-26d899d008b2 Кто-нибудь знает, что может быть лучшим подходом для этого

Комментарии:

1. Мы смогли исправить эту проблему, внеся некоторые изменения в библиотеку charts_flutter

Ответ №1:

Я полагаю, это потому, что вам нужно обернуть виджет диаграммы, который находится внутри какого-либо другого виджета, в котором есть физика (свойство). В самих диаграммах не определена никакая физика. Оно управляется с помощью ссылок на модели состояний.. У меня тоже была эта проблема давным-давно.. Вот моя рекомендация (с очень любительскими знаниями о flutter):

  • Во-первых, я бы обернул свои диаграммы в виджет карты.
  • Во-вторых, я бы не стал использовать SingleChildScrollView. Если вы не абсолютно уверены, какой виджет вы создаете под этим родительским, и каждый из них имеет внутренние размеры, определенные в дочерних виджетах. Я бы настоятельно рекомендовал использовать CustomScrollView -> И добавить простой SliverChildBuilderDelegate . Это лениво строит ваши диаграммы (теперь завернутые в карточку / контейнер / столбец.. все, что вы выбрали).. Таким образом, вам не нужно беспокоиться о размерах и прокрутке. И любые дочерние элементы, которые вы добавляете, лениво создаются при прокрутке в область просмотра..