Flutterでタブバーを作って、タブのタイトルの1つに「本日(0月0日)」みたいな感じで、現時点の日付を入れたいです。
しかし以下のコードで
static DateTime _now = DateTime.now();
としても、
The argument type 'DateTime' can't be assigned to the parameter type 'String'.
文字列の型には入れられないと言われてしまいます。
flutter
1class _HomeState extends State<Home> { 2 static DateTime _now = DateTime.now(); 3 final _tab = <Tab>[ 4 Tab(text: _now, icon: Icon(Icons.directions_car)), 5 Tab(text: 'Bicycle', icon: Icon(Icons.directions_bike)), 6 ]; 7 8 Widget build(BuildContext context) { 9 return DefaultTabController( 10 length: _tab.length, 11 child: Scaffold( 12 appBar: AppBar( 13 title: Text( 14 ' テストページ', 15 style: TextStyle(color: Theme.of(context).primaryColor), 16 ), 17 backgroundColor: Theme.of(context).accentColor, 18 bottom: TabBar( 19 tabs: _tab, 20 ), 21 ), 22 body: TabBarView(children: <Widget>[ 23 TabPage(title: _now, icon: Icons.directions_car), 24 TabPage(title: 'Bicycle', icon: Icons.directions_bike), 25 ]), 26 ), 27 ); 28 } 29} 30
ですので、文字列の型に変換すれば動くのかなと思い、Stringに変換できるコードを探して書いてみたのですが、上手くいきません。
pubspec.yamlにintlパッケージを加えて
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.3 intl: ^0.16.1
先ほどのコードの一部を以下に変えました。
flutter
1//importを加えました 2import 'package:intl/intl.dart'; 3 4class _HomeState extends State<Home> { 5 //ここから 6 DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm:ss"); 7 String _now = dateFormat.format(DateTime.now()); 8//ここまで加えました 9 final _tab = <Tab>[ 10 Tab(text: _now, icon: Icon(Icons.directions_car)), 11 Tab(text: 'Bicycle', icon: Icon(Icons.directions_bike)), 12 ]; 13 14 Widget build(BuildContext context) { 15 return DefaultTabController( 16 length: _tab.length, 17 child: Scaffold( 18 appBar: AppBar( 19 title: Text( 20 ' コール一覧', 21 style: TextStyle(color: Theme.of(context).primaryColor), 22 ), 23 backgroundColor: Theme.of(context).accentColor, 24 bottom: TabBar( 25 tabs: _tab, 26 ), 27 ), 28 body: TabBarView(children: <Widget>[ 29 TabPage(title: _now, icon: Icons.directions_car), 30 TabPage(title: 'Bicycle', icon: Icons.directions_bike), 31 ]), 32 ), 33 ); 34 } 35} 36
しかし次はこのようなエラーが出ます。
The instance member 'dateFormat' can't be accessed in an initializer.
Try replacing the reference to the instance member with a different expression
The instance member '_now' can't be accessed in an initializer.
Try replacing the reference to the instance member with a different expression
どのように対処すれば、上手く行きますでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 05:05