TextFieldの文字列を選択すると勝手に中身がスクロールしてしまう問題 – 開発日記(89)

2024/04/15

TextFieldで、TextFieldの幅より長い文字列を選択すると勝手に中身がスクロールしてしまうという仕様に困っていた。

たとえば下記1枚目の画像で文字列を選択すると、自動的に2枚目の画像のようになる。

TextField単体の仕様としては問題ないのだが、これを制御したい場面があった。

しかしどうしたら良いか分からず、そもそもその挙動が変えられるのかも分からず途方にくれていたところ……こちらの記事がヒットして、制御できることが分かった。

textfield – Flutter Web – Text field scrolls instead of selecting for long text – Stack Overflow

本当にとても助かった!料理屋ならば「シェフを呼んでくれ。お礼が言いたい。」となるレベルだ。(やったことないけれど)

これまではStackOverflowでVote出来なかったのだが、いつの間にか自分のレピュテーションが上がり投票できる状態になっていたので、UpVoteしておいた。

2024/04/17 ~ 2024/04/21

細かな不具合の修正や挙動調整。

  • ファイルのインポート周りの不具合修正。
  • アイディアのドラッグ&ドロップ処理の調整。
  • Undo/Redo周りの挙動の安定化。
  • フォルダ内の最後のファイルを削除した後、勝手に新規ファイルが作成されてしまう挙動の修正

非同期周りの処理はかなり気をつけないとダメだ。awaitが漏れてしまうことで非常に分かりづらい不具合を誘発する。

対策として、asyncの関数は名前の末尾にAを付けることにした。例: addNewIdea() を非同期にした場合 addNewIdeaA() と明示しておき、呼び出しだし側で await を付ける判断をすべきか気付きやすくする。これは自分としては非常に有効で、その後ずっとそのルールでやっている。


※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています

この記事はアイディア整理ソフト「idea Lane」の開発記録です

どなたでも、ユーザ登録だけで無料ですぐに使えます
テキストベースの思考整理ツール「idea Lane」


コメント

タイトルとURLをコピーしました