@yama_1983

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Flutter Webでエンターでの送信が動作しません

    ### 解決したいこと

Flutter Web で作成したテキスト入力欄でエンターでの送信を試みています。

  • Windows上のEdge / Chrome / Firefox
  • iOS上のSafari
    では動作していますが、Android上のChromeでは機能しません。
  • TextField() → onSubmitted
  • TextFormField() → onFieldSubmitted
    どちらも機能しません。

該当するソースコード

TextField(
        textInputAction: TextInputAction.done,
        onSubmitted: (text){
Navigator.push(context, 
MaterialPageRoute(
  builder: (context)  => TestPage())
);          
        },
      ),

自分で試したこと

TextFormField()への書き換え

0 likes

2Answer

This answer has been deleted for violation of our Terms of Service.

以下の方法を試して、Android ChromeでのonSubmittedの動作を確保してください。複数のアプローチを提案しますので、順番に試してみてください。

解決策1: RawKeyboardListenerを使用したワークアラウンド
Flutter WebでのonSubmittedのバグを回避するため、RawKeyboardListenerを使ってEnterキーの押下を直接検出する方法です。この方法は、過去のイシュー(,)で推奨されているワークアラウンドです。

解決策2: textInputActionの変更
textInputAction: TextInputAction.doneがAndroid Chromeで正しく動作しない場合、他のTextInputAction(例: TextInputAction.searchやTextInputAction.send)を試してみてください。特定のアクションがAndroid Chromeでより適切に処理される場合があります

解決策3: HTML要素のinputmodeを調整
Android Chromeでのテキスト入力の問題が、HTMLレンダリングに関連している場合があります。Flutter WebはHTML要素()を使ってテキストフィールドをレンダリングするため、inputmode属性が影響を与える可能性があります。inputmode="text"を明示的に設定することで、キーボードの動作を安定化させることができます

0Like

Your answer might help someone💌