よく寝てよく遊びよくサボる

趣味のAndroidアプリ開発の話や、その他諸々の情報について掲載していきます。自らの備忘の面が強いので情報の正確性は保証できませんが、誰かの役に立てば是幸い。(リンクはご自由に!)

flutterのDrawerで他の画面へ遷移する

flutterのDrawer(アプリ画面の左上から開くナビゲーションバー)で画面を切り替えようとして、色々なページを検索して作成していたら、変なところでつまづいたのでメモ。

 

あちこちのサイトを参考に作成したプログラム↓

return Scaffold(
appBar: AppBar(
title: Text(title),
),
drawer:Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: const <Widget>[
DrawerHeader(
〜〜〜〜
),
ListTile(
leading: Icon(Icons.list),
title: Text('List'),
onTap: (){
Navigator.pop(context);
Navigator.of(context).pushNamed('〜〜〜');
},
),
],
),
),
body:〜〜

 

上記を記載すると、次のエラーが表示されました。

Invalid constant value,
The value in a const list literal must be constants.
Try removing the keyword 'const' from the list literal.

 

 色々迷った結果、

children: const <Widget>[

のconstが無ければ問題なく動作することが分かりました。

やっぱりちゃんと読んでコピペしないと、思わぬところで引っかかりますね。。

 

動作したプログラム↓

return Scaffold(
appBar: AppBar(
title: Text(title),
),
drawer:Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
DrawerHeader(
      〜〜〜〜
),
ListTile(
leading: Icon(Icons.list),
title: Text('List'),
onTap: (){
Navigator.pop(context);
Navigator.of(context).pushNamed('〜〜〜');
},
),
],
),
),
body: 〜〜