【 Flutter 】Flutter を 基礎 から 学習 ( Material ComponentsとiOS-Style ) part131 Material Components
「 基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Material ComponentsとiOS-Style ( part131 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Material ComponentsとiOS-Style ) part130 Material Components
引き続き、Material Componentsについて学びます。
SliverAppBar, SliverList, FlexibleSpaceBar
SliverAppBar
, SliverList
, FlexibleSpaceBar
についてのプロパティの学習です。
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(home: new MyHomePage()));
}
class MyHomePage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyHomePageState();
}
}
class _MyHomePageState extends State<MyHomePage> {
bool dark = false;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: dark ? ThemeData.dark() : ThemeData.light(),
home: Scaffold(
appBar: AppBar(
centerTitle: true, // タイトルが中央になります。
title: Text('Toggle theme sample'),
// SliverAppBarにも同じプロパティがあります。
// flexibleSpace: ,
),
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
// falseにするとリスト最上部に達した段階でヘッダーが最大サイズになるのですが、
// trueにすると達していなくても最大サイズになります。
floating: true,
// pinnedをfalseにするとスクロールとともに完全に無くなります。
pinned: true,
// 広がっている状態の高さの設定です。
expandedHeight: 200.0,
// AppBarにも同様のプロパティがあります。
flexibleSpace: FlexibleSpaceBar(
// ヘッダ部分が狭くなった時にtitleで指定した文字を表示します。
title: const Text('FlexibleSpaceBar'),
// タイトルが中央になります。
centerTitle: true,
// ヘッダが拡大した際のウィジェットを指定します。
background: Stack(
fit: StackFit.expand,
children: <Widget>[Image.asset('images/cat_nekoko.png')],
),
),
),
SliverList(
// スクロールする部分以上するクラスを指定します。
delegate: SliverChildBuilderDelegate(
(BuildContext content, int index) {
return ListTile(
title: Text('Item $index'),
);
},
childCount: 30,
),
),
],
),
),
);
}
}
最後に
SliverAppBar
はほかにもAppBar
と似たようなプロパティを保持しているようです。
title
プロパティの説明ちょっとわかりませんでした。
利用する場合はSliverBAppBar
ウィジェットをのtitle
プロパティを記述しない???
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません