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: 〜〜