flutterのテキスト編集フィールドを無効化する
2023-08-31 13:42:34
質問
TextFormFieldを時々無効にする必要があります。ウィジェットやコントローラで、単純に読み取り専用や無効にするフラグが見つかりませんでした。 何か良い方法はありますか?
どのように解決するのですか?
これは現在のところフレームワークで提供されている機能ではありませんが、フレームワーク上で
FocusScope
を防ぐために
TextFormField
がフォーカスを要求するのを防ぎます。
無効化するとこんな感じです。
有効化するとこんな感じです。
このためのコードは以下の通りです。
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new HomePage(),
));
}
class HomePage extends StatefulWidget {
HomePageState createState() => new HomePageState();
}
class HomePageState extends State<HomePage> {
TextEditingController _controller = new TextEditingController();
bool _enabled = false;
@override
Widget build(BuildContext context) {
ThemeData theme = Theme.of(context);
return new Scaffold(
appBar: new AppBar(
title: new Text('Disabled Text'),
),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.free_breakfast),
onPressed: () {
setState(() {
_enabled = !_enabled;
});
}
),
body: new Center(
child: new Container(
margin: const EdgeInsets.all(10.0),
child: _enabled ?
new TextFormField(controller: _controller) :
new FocusScope(
node: new FocusScopeNode(),
child: new TextFormField(
controller: _controller,
style: theme.textTheme.subhead.copyWith(
color: theme.disabledColor,
),
decoration: new InputDecoration(
hintText: _enabled ? 'Type something' : 'You cannot focus me',
),
),
),
),
),
);
}
}
関連
-
[解決済み] FlutterでButtonを無効にするには?
-
[解決済み] Flutterで16進数の色文字列を使用するにはどうすればよいですか?
-
[解決済み] Flutterで丸みを帯びたボタン/border-radius付きボタンを作成する
-
[解決済み】Flutter - オーバーフロー時にテキストを折り返し、省略記号の挿入やフェードを行う
-
[解決済み】FlutterでStateful Widgetにデータを渡す
-
[解決済み】Flutterで数値入力フィールドを作成する方法は?
-
[解決済み] Flutter 継承されたウィジェットを正しく使うには?
-
[解決済み] FlutterのコードからWebブラウザ(URL)を開くには?
-
[解決済み] Flutter: 静的ターゲットが見つからない場合の未実装の処理
-
[解決済み] Flutterでテキストに線を引くには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] FlutterのprimaryColorとprimarySwatchの違いは何ですか?
-
[解決済み] CircularProgressIndicatorにサイズを設定するには?
-
[解決済み] flutterで空のビューを表示するには?
-
[解決済み] Flutter StreamBuilderとFutureBuilderの比較
-
[解決済み] Flutterにおける変数名の前のアンダースコア"_"の意味するところ
-
[解決済み] 素材ウィジェットが見つかりません
-
[解決済み] 丸みを帯びたボーダーを持つボタンを作成する [重複]。
-
[解決済み] SingleChildScrollViewでExpandedを使用するには?
-
[解決済み] flutterから.apkと.ipaファイルを取得する方法は?
-
[解決済み] AnimationController 名前付きパラメータ 'vsync' が定義されていません。