【Flutter】SliverAppBarの基本とサンプルコード

本記事では、SliverAppBar widgetの基本的な使い方とサンプルコード、関連記事を紹介します。

Flutterの公式動画の「Widget of the Week」をベースに日本語で説明しています。

本記事を読むメリット

  • SliverAppBarの基本的な使い方や考え方がわかる
  • SliverAppBarのサンプルコードを確認できる
  • 関連記事をトピック毎にまとめて確認できる

SliverAppBarの基本的な使い方

要約

  • SliverAppBarはスクロールすると見た目が変わるアニメーションヘッダー
  • 最初はimageの画像をヘッダーとして表示して、スクロールにより幅が狭くなると文字にする、のような表現が可能になる

説明

SliverAppBarを使えば、下のイメージのようなアニメーションヘッダーを作ることができます。

SliverAppBarはCustomScrollViewのchildrenのひとつとして利用することで、AppBarのスクロールの動きをカスタマイズすることができます。

sliverはスクロール機能を実現するためのwidgetです。

sliverは、スクロール可能な領域の実装を細かく制御するためのベースレベルのインタフェースで、例えば、SliverAppBarであれば、どんなwidgetでもSliverAppBarのchildに渡すだけで、スクロールできるAppBarとして表示することができるようになります。

SliverAppBarはこのようなイメージで使われる。
SliverAppBarは様々なwidgetをスクロールできるAppBarとして表示するためのインターフェース

flexibleSpaceパラメータとextendedHeightパラメータを指定することで、フルサイズに拡大されたときのAppBarの高さと見た目を指定することができます。

もしアプリがスクロールダウンされているときにも、AppBarを表示させたい場合は、floatingパラメーターにtrueを指定してください。

動画

サンプルコード

・SliverAppBar、SliverGridのサンプルコード(詳細な解説付き)
 SliverAppBar | Flutter Doc JP

・SliverAppBarで画像を固定するパターン
 [Flutter]スクロールしても画像が上部に固定して残るようにしたい

関連記事

・SliverAppBarとTabBarの組み合わせ サンプルコード
 【Flutter】SliverAppBarとTabBarを組み合わせたときに各タブのスクロール位置を保持したい

・SilverStickyHeader(下のgifのようなヘッダーが作れるライブラリ)
 flutter_sticky_header | Flutter Package – Dart Pub

・Flutter 公式ドキュメント
 SliverAppBar class – widgets library – Dart API – Flutter

・関連書籍
 Flutterの基本的な仕組みや周辺知識(テストやCIなど)を網羅的に学べる入門書
 Flutter モバイルアプリ開発バイブル

・その他のwidgetについてはこちら
 カテゴリ-Flutter

 

こちらのプログラミング書籍もおすすめ
(若手プログラマー向け、コーディングのレベルが1段階アップ!)

レガシーコード改善ガイド

  • 特定の言語に限らず、プログラミング初心者で理論から学びたい方におすすめ
  • プログラムに不具合が発生する仕組みや原理を理解できます。
  • その結果、不具合に強いコードが理解でき、書けるようになります。
  • 既存動作を担保しつつ、ソースをリファクタするための方法論を知ることができます。
  • テーマはテストですが、コーディングのレベルアップにも大きく役立ちます

Head First Java 第2版 ―頭とからだで覚えるJavaの基本

  • Javaなどのオブジェクト指向プログラミングの初心者におすすめ
  • 初心者が躓きやすいポイントをわかりやすく解説(インターフェースオブジェクト指向ポリモーフィズムなど)
  • コードをシンプルに保つことができるようになる
  • ポリモーフィズムを利用した、拡張しやすいプログラムをつくることができるようになる。

 

この記事を書いた人

たかお

IT企業で開発者として6年経験を積んだ後、2019年からインドIT企業の日本法人でITコンサルにジョブチェンジ。
 
プログラミングはjava、js、html、cssあたりを仕事で6年くらい。
個人ではFlutterをいじってます。
学んだことを発信していきます。よろしくお願いします!
 
firebaseで簡単なタイピングアプリを作ってみました。
もしよければ遊んでみてください!
1位の記録や管理人(私)の記録と勝負できるようになってます!
 
タイピング・チャレンジャー
https://typing-challenger.com/