🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

3922閲覧

【Flutter】TextFieldに文字が反映されない

narururu

総合スコア172

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

1クリップ

投稿2021/02/04 09:47

解決したい課題

TextFieldに文字を反映させたい。

現状

TextFileの下に表示されてしまう。
イメージ説明

コード

import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'narururu', home: HomePage() ); } } class HomePage extends StatefulWidget { HomePageState createState() => HomePageState(); } class AlwaysDisabledFocusNode extends FocusNode { @override bool get hasFocus => false; } class HomePageState extends State<HomePage> { DateTime _date = new DateTime.now(); String Calendar; Future<Null> _selectDate(BuildContext context) async { final DateTime picked = await showDatePicker( context: context, initialDate: _date, firstDate: new DateTime(2000), lastDate: new DateTime(2100), ); if(picked != null) setState(() => _date = picked); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('テスト'), ), body: ListView( children: <Widget>[ ListTile( title: TextFormField( focusNode: AlwaysDisabledFocusNode(), onTap: () => _selectDate(context), decoration: InputDecoration( hintText: 'ここに日付を表示させたい', ), ), ), Row( children: [ Text(_date.year.toString() + '年',), Text(_date.month.toString() + '月',), Text(_date.day.toString() + '日',), ], ), ] ) ); } }

色々試していますが、どうしてもTextFieldに文字が反映されません。
解決策を教えていただけないでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じだと思います!
基本的にTextFieldに表示される文字は、TextEditingControllerで管理できます。

flutter

1import 'package:flutter/material.dart'; 2 3void main() => runApp(MyApp()); 4 5class MyApp extends StatelessWidget { 6 @override 7 Widget build(BuildContext context) { 8 return MaterialApp(title: 'narururu', home: HomePage()); 9 } 10} 11 12class HomePage extends StatefulWidget { 13 HomePageState createState() => HomePageState(); 14} 15 16class AlwaysDisabledFocusNode extends FocusNode { 17 @override 18 bool get hasFocus => false; 19} 20 21class HomePageState extends State<HomePage> { 22 DateTime _date = new DateTime.now(); 23 24 final dateController = TextEditingController(); 25 26 Future<void> _selectDate(BuildContext context) async { 27 final DateTime picked = await showDatePicker( 28 context: context, 29 initialDate: _date, 30 firstDate: new DateTime(2000), 31 lastDate: new DateTime(2100), 32 ); 33 if (picked != null) 34 setState(() => dateController.text = 35 '${picked.year}年${picked.month}月${picked.day}日'); 36 } 37 38 @override 39 void dispose() { 40 dateController.dispose(); 41 super.dispose(); 42 } 43 44 @override 45 Widget build(BuildContext context) { 46 return Scaffold( 47 appBar: AppBar( 48 title: Text('テスト'), 49 ), 50 body: ListView(children: <Widget>[ 51 ListTile( 52 title: TextFormField( 53 controller: dateController, 54 onTap: () { 55 _selectDate(context); 56 }, 57 focusNode: AlwaysDisabledFocusNode(), 58 decoration: InputDecoration( 59 hintText: 'ここに日付を表示させたい', 60 ), 61 ), 62 ), 63 ])); 64 } 65} 66

投稿2021/02/07 14:46

編集2021/02/07 14:47
flutter_labo

総合スコア110

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

narururu

2021/02/07 16:29

ご回答ありがとうございます!taiso.itsukageさん☺ すごいです。イメージ通りの動作が確認できました???? TextとTextFieldでは記述方法が変わるのですね???? TextEditingControllerの存在、初めて知りました! またまた勉強になりました! ご丁寧にアドバイスしていただき助かります。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問