Slide 1

Slide 1 text

リストのスクロール方法の検討 YOUTRUST × ゆめみ Flutter LT会 #4

Slide 2

Slide 2 text

自己紹介 ● 名前: 森 寛太 ● ゆめみの Flutter エンジニア ● GitHub: https://github.com/morikann

Slide 3

Slide 3 text

リストのアイテムにスクロールする方法は何がある?🤔

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

計算が大変😱

Slide 6

Slide 6 text

Key を割り当てる方法がある💡

Slide 7

Slide 7 text

Keyを作成し、 リストのアイテムに渡す 遷移したいwidgetのcontextを 渡してスクロール

Slide 8

Slide 8 text

Keyを作成し、 リストのアイテムに渡す 遷移したいwidgetのcontextを 渡してスクロール

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

問題点 あらかじめ全てのリストアイテムにKeyを割り当てる必要がある 効率的なリストには使えない(ex. ListView.builder, SliverList.builder)

Slide 11

Slide 11 text

どうするか 🤔

Slide 12

Slide 12 text

scrollable_positioned_list ● Googleが開発 ● 効率的なカスタムリストを提供 ● スクロールによるリストアイテムへの移 動 ● ジャンプによるリストアイテムへの移動

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

問題点 ● 画面全体でスクロールできる、かつ 画面の一部にリストを表示する構成ができない ● CustomScrollView + SliverFillRemainingで ScrollablePositionedList.builderをラップすると それっぽい画面はできるが期待する動作にはならない

Slide 15

Slide 15 text

問題点 ● 画面全体でスクロールできる、かつ 画面の一部にリストを表示する構成ができない ● CustomScrollView + SliverFillRemainingで ScrollablePositionedList.builderをラップすると それっぽい画面はできるが期待する動作にはならない

Slide 16

Slide 16 text

どうするか 🤔

Slide 17

Slide 17 text

scroll_to_index ● カスタムリストの提供はなし ● 既存のリストに適用可能 ● スクロールによるリストアイテムへの移 動 ● ジャンプによるリストアイテムへの移動 は提供していない 󰢃

Slide 18

Slide 18 text

AutoScrollController のインスタンスを作成 AutoScrollTag でリストアイテムをラップ スクロールメソッドにindexを提供するだけ

Slide 19

Slide 19 text

AutoScrollController のインスタンスを作成 AutoScrollTag でリストアイテムをラップ スクロールメソッドにindexを提供するだけ

Slide 20

Slide 20 text

まとめ ● リストのスクロール方法は色々ある ● デザイン、要件に合わせて適切な方法を取っていきたい

Slide 21

Slide 21 text

ご清聴ありがとうございました!