Flutter なぜかTextFormFieldが改行できない場合に確認するべきこと

#なぜか`TextFormField`で改行ができない
ある日、なぜか`TextFormField`で改行ができない現象に遭遇しました。。。

その時のソースがこちら

```dart
SliverList(
          delegate: SliverChildListDelegate(<Widget>[
            Container(
              padding: EdgeInsets.symmetric(
                vertical: 3 * SizeConfig.blockSizeVertical,
                horizontal: 3 * SizeConfig.blockSizeVertical,
              ),
              child: Column(
                children: <Widget>[
                 // 省略
                  Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      Container(
                        width: double.infinity,
                        child: Text(
                          '作品の見所',
                          style: Theme.of(context).textTheme.headline5,
                          textAlign: TextAlign.left,
                        ),
                      ),
                    ],
                  ),
                  Form(
                    key: _formKey,
                    child: ListView(
                      padding: EdgeInsets.only(top: 10),
                      shrinkWrap: true,
                      physics: NeverScrollableScrollPhysics(),
                      children: <Widget>[
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            Container(
                              width: 50,
                              height: 400,
                              decoration: BoxDecoration(
                                  border: Border.all(
                                    width: 1,
                                    color: Colors.grey,
                                  ),
                                  shape: BoxShape.circle),
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.center,
                                mainAxisAlignment: MainAxisAlignment.center,
                                children: [
                                  Text('1'),
                                ],
                              ),
                            ),
                            SpaceBox.width(10),
                            Expanded(
                              child: TextFormField(
                                controller: _point1Controller,
                                keyboardType: TextInputType.multiline,
                                maxLength: null,
                                textInputAction: TextInputAction.newline,
                                decoration: InputDecoration(labelText: '見所1'),
                              ),
                            ),
                          ],
                        ),
                      ],
                    ),
                  ),
                ],
              ),
            ),
          ]),
        )
```

###なぜ改行できないのか原因が分かりましたか？

**ぱっと見で原因が分かった人はそっとこの記事を閉じてください。**
これ以上見る必要はありません:joy:

#とてつもない凡ミスだった
「flutter textfield 改行」なんかで検索すると、必ずここに到達すると思います。

```dart
TextField(
   keyboardType: TextInputType.multiline, // 追加
   maxLines: null, // 追加
),
```

私のソースにも当然これらの値は追加されています！

それでも改行できない！

**色々と試行錯誤しました。`Row`から外してみたり、`Expanded`を`Flexible`にしたり、`SliverList`が原因か？と疑ってみたり、`ListView`をやめてみたり、、、**

https://qiita.com/kokogento/questions/6702ca191d9740488e72

質問まで投稿しました。

で、色々と検索しまくっていると、以下のようなソースに出会いました。

```dart
 child: TextField(
          controller: _textEditingController,
          enabled: true,
          maxLength: 50, // 入力数
          maxLengthEnforced: false, // 入力上限になったときに、文字入力を抑制するか
          style: TextStyle(color: Colors.black),
          obscureText: false,
          maxLines:1 ,
        ),
```

**ん。maxLength？maxLines？なんか似たようなのがあるな〜。。**

**あれ？も、、もしかして、、、**

```dart
keyboardType: TextInputType.multiline,
maxLength: null, //「Length」ではなく「Lines」！！！
maxLines: null,
textInputAction: TextInputAction.newline,
```

なんとずっと最大文字数である`maxLength`をnullにしていただけだったのです。。:scream:

`maxLines`をnullで設定すると、普通に改行できました！

**最初の私のソースを見て原因がわからなかった人は要注意ですね**

と言うお話でした。。。