【Flutter】Drawerでメニューリストを表示する

WEB

スマホアプリでは、メニューアイコンを押すとメニューリストが左側からスライドしてきて表示されるというユーザーインターフェースはよく見るかと思います。 この記事ではそのようなユーザーインターフェースを実現する「Drawer」ウィジェットをご紹介します。

Drawerウィジェット

使い方

①Scaffoldの中でDrawerを設定

Scaffoldウィジェットのプロパティとして「appBar」や「body」がありますが、それに加えて「drawer」プロパティを設定するだけです。これでDrawerが表示されます。めっちゃ簡単ですね。

②Drawerの中身を作成

これだけだと寂しいのでListViewとListTileウィジェットを使ってDrawarウィジェットの中身を作ってみます。

よく見るメニュー一覧ができました。

あとはListTileのonTapプロパティでそれぞれのページに飛ばしてあげればOKです。

 

アーキテクチャー

サンプルコード

class OkaneruDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
children: [
Container(
padding: EdgeInsets.only(top: 25,bottom: 10),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.black,appbar_green],
begin: const FractionalOffset(0.0, 0.0),
end: const FractionalOffset(1.0, 0.0),
stops: [0.0, 1.0],
tileMode: TileMode.clamp,
)
),
child: Column(
children: [
Material(
borderRadius: BorderRadius.circular(80),
elevation: 8,
child: Container(
height: 160,
width: 160,
// child: CircleAvatar(
// backgroundImage: Image(n),
// ),
),
),
SizedBox(height: 10,),
Text(
'Drawer Mene',
style: TextStyle(
color: Colors.white,
fontSize: 35,
fontFamily: 'Signatra'
),
)
],
),
),
SizedBox(height: 12,),
Container(
padding: EdgeInsets.only(top: 1),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [appbar_green,Colors.black],
begin: const FractionalOffset(0.0, 0.0),
end: const FractionalOffset(1.0, 0.0),
stops: [0.0, 1.0],
tileMode: TileMode.clamp,
)
),
child: Column(
children: [
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('Home',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('My Orders',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('My Cart',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('Search',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('Add New Address',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),
ListTile(
leading: Icon(Icons.home,color: Colors.white,),
title: Text('Logout',style: TextStyle(color: Colors.white),),
onTap: (){},
),
Divider(
height: 10,color: Colors.white,thickness: 6,
),

],
),
)
],

),
);
}
}
micel

micel

理系メーカーで5年間、社畜として飼われていましたが、副業で¥617円(時給¥200円くらいww)稼いで価値観が変わりました。たった¥617円だけど給料ではなく自分で稼いだお金はわたしにとって大きな価値がありました。成功体験とかは語れないけど、私みたいなサラリーマンが一歩目を踏み出すきっかけを作りたいです。

関連記事

nono

nono

住宅ローン完済。子育て終了。定年近い夫、社会人2年目の息子と暮らす50代主婦。パソコン教室運営。

micel

micel

理系メーカーで5年間、社畜として飼われていましたが、副業で¥617円(時給¥200円くらいww)稼いで価値観が変わったサラリーマンの金錬ブログです。

ランキング

  1. 1

    【誰でもできる】TOSHIBA dynabookのSSD換装(クローン)方法を簡単解説します!

  2. 2

    【超簡単コピペでできる】Contact Form 7、送信ボタンの色変更方法!

  3. 3

    【ジャストカーテン】ヤマダ電機でオーダーカーテン購入

最近の記事 おすすめ記事 特集記事
  1. 【Flutter】syncfusion_flutter_calendarパッケージを使ってカレンダーを作成

  2. 【Flutter】Drawerでメニューリストを表示する

  3. 【Flutter】TabVarViewを使った画面の切り替え

  1. Apple信者が紹介するApple Watch SEの便利な使い方!

  2. 【超簡単コピペでできる】Contact Form 7、送信ボタンの色変更方法!

  3. 【誰でもできる】TOSHIBA dynabookのSSD換装(クローン)方法を簡単解説します!

  1. 屋根リフォーム実践体験記録!【オベロン屋根カバー工法】良かったこと、失敗したことを実体験からご紹介!

  2. 【屋根・外壁リフォーム】だまされるな!業者によっては数十万の差はあたりまえ。相見積調査を一挙紹介!

  3. 反ってしまった外壁の補修は張り替えしかないのか?

TOP