web-dev-qa-db-ja.com

Flutter TextFieldのmaxLinesを動的に変更する方法はありますか?

次のようなTextFieldがあります。

new Flexible(
    fit: FlexFit.loose,
    child: new Container(
        alignment: FractionalOffset.topLeft,
        child: new TextField(
            decoration: new InputDecoration(
                  hintText: 'Add a note',
            ),
            maxLines: 1,
            onChanged: (value) => _showSaveOptions(value),
        ),
    ),
),

maxLinesを1に設定してTextFieldを開始したいのですが、入力中にmaxLinesを増やして、すべてのテキストがページに残り、上にスクロールします。ただし、空のTextFieldは必要以上のスペースを占有するため、maxLinesを5または10に設定することから始めたくはありません。私が実装したい動作の例は、Google FormsのLong Answer Textオプションにあり、1行で始まります。 enter image description here と入力すると展開されます: enter image description here

maxLinesを、ユーザーが改行を入力するたびに増加するカウンターに設定することを検討しましたが、ユーザーがいつ行を埋めたかを判断するにはどうすればよいですか?

11
Mary

FlutterはTextFieldで複数行のサポートに遅れをとっていました。同じことに関して issue が提起された後、 .0.16 リリースで複数行機能が追加されました。

Flutterを最新リリースにアップグレードしてください。複数行のTextFieldを使用するには:

new TextField(
    maxLines: null,
    keyboardType: TextInputType.multiline,
) 

これが役に立てば幸いです!

29
Hemanth Raj

テキスト領域のように見えます。 maxLinesで試すことができます

maxLines:8

TextField(
        maxLines: 8,
        decoration: InputDecoration(hintText: "Enter your text here", border: OutlineInputBorder(),
        labelText: 'Post Body'),
    ),
0
AH Rasel