2017-04-11 5 views
2

maxLines 속성을 3으로 설정하여 TextFormField를 구현하고 있습니다. 사용자가 네 번째 줄부터 시작하면 어떻게 TextFormField를 스크롤 할 수 있습니까? 현재 사용자가 손으로 아래로 스크롤 할 때까지 커서는 더 이상 보이지 않습니다. 이 작업을 자동으로 수행 할 수있는 방법이 있습니까?maxLines 속성을 확장하면 여러 줄 TextFormField가 자동으로 스크롤됩니다.

이 동작은 flutter_gallery 앱의 '텍스트 입력란'예제에 실제로 적용됩니다. 네 번째 줄에 도달 할 때까지 '라이브 스토리'입력에 긴 텍스트를 입력하기 만하면됩니다. 내 코드의
중요한 부분은 실제로 다음과 같이 :

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

추신 : 이렇게하면 한 줄짜리 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에서 위젯 주문 및 정확한 위젯이 작동하도록 도움을 받았습니다.

관련 문제