アプリ開発時、以下の様な機能を実装したいケースがある。
「アプリ起動後に表示するウォークスルー画面」
この機能はPageView
クラスとsmooth_page_indicator
で簡単に作成できる。
本エントリでは以下の流れでウォークスルー画面を簡単に作成する方法を説明する。
ウォークスルー画面例
まず動作画像とコードを示す。その後適宜説明を加える
ウォークスルー動作画像
コード
コード説明
本エントリのウォークスルーUIはPageView
クラスとsmooth_page_indicator
を用いて実現している。
まずそれぞれのクラスについて説明し、その後PageController
について述べる。
PageView
PageView
はスクロールして特定のchildren
に指定したウィジェットを表示することができる。
ListView
などのレイアウト系ウィジェットと異なる点として、
「スクロールは中途半端な位置では終わらない」がある。
以下の画像はListView
を用いた例。中途半端な位置でスクロールが止まる。
PageView
を使用する上ではいくつか注意点がある。
[注意点1] サイズを指定した方がよい
SizedBox
などでラップして縦横のサイズを指定する。
未指定だとRenderBox was not laid out
みたいなエラーが表示される。
[注意点2] controllerプロパティを指定する
本エントリで示している例の様に、PageView
の下に現在のページ位置を示すインディケーターがある場合、
controller
を指定する必要がある。
出ないと現在のページ位置が認識されず、実際のページ位置とインディケーターが示すページ位置がずれる。
smooth_indicator
ウォークスルーでは現在何枚目のページを表示しているかを表すインディケーターがよく併せて表示される。
そこでsmooth_page_indicator
を使用する。
サードパーティのパッケージなのでpubspec.yaml
に以下を記述する。
smooth_page_indicator: ^1.0.0+2
使用方法は簡単で、controller
プロパティにPageView
にも指定した共通のコントローラーを指定すれば良い。
またページ数の指定はcount
にページ数を渡すことで可能。