2017-04-11 1 views
2

maxLines属性を3に設定してTextFormFieldを実装しています。ユーザーが4行目で開始すると、どのようにTextFormFieldをスクロールさせることができますか?現時点では、ユーザが手でスクロールダウンするまで、カーソルは表示されなくなります。これを自動的に行う方法はありますか?maxLines属性を拡張すると自動的に複数行TextFormFieldをスクロールします

この動作は実際にはflutter_galleryアプリケーションの 'テキストフィールド'の例に記載されています。 4列目に達するまで、「ライブストーリー」入力に長いテキストを入力するだけです。私のコードの
重要な部分は、実際には次のようになります。

import 'package:flutter/material.dart'; 

class TextFormFieldDemo extends StatelessWidget { 
    @override 
    Widget build(BuildContext context) { 
    return new Scaffold(
     body: new Form(
     child: new TextFormField(
      maxLines: 3, 
     ), 
    ), 
    ); 
    } 
} 

これまでのところ、私はこの問題の回避策は認められません。
この問題は、iOSとAndroidの両方に影響します。

+0

PS:これは1行のTextFieldにも影響します。行の終わりに達すると、テキストが左にスクロールすることが期待されますが、それはしません。 –

答えて

0

私たちのチームは、いくつかの既存のウィジェットをネストすることによって、これを達成:

// create the illusion of a beautifully scrolling text box 
return new Container(
    color: Colors.gray, 
    padding: new EdgeInsets.all(7.0), 

    child: new ConstrainedBox(
    constraints: new BoxConstraints(
     minWidth: _contextWidth(), 
     maxWidth: _contextWidth(), 
     minHeight: AppMeasurements.isLandscapePhone(context) ? 25.0 : 25.0, 
     maxHeight: 55.0, 
    ), 

    child: new SingleChildScrollView(
     scrollDirection: Axis.vertical, 
     reverse: true, 

     // here's the actual text box 
     child: new TextField(
      keyboardType: TextInputType.multiline, 
      maxLines: null, //grow automatically 
      focusNode: mrFocus, 
      controller: _textController, 
      onSubmitted: currentIsComposing ? _handleSubmitted : null, 
      decoration: new InputDecoration.collapsed(
      hintText: ''Please enter a lot of text', 
     ), 
     ), 
     // ends the actual text box 

    ), 
    ), 
); 
} 

我々 Darkyからウィジェットの注文とそれを動作させるための正しいウィジェットを手に入れました。

関連する問題