2016-06-13 3 views
2

입력 텍스트가있는 간단한 예를 만들었지 만 이전 태블릿 ​​(samsung)에서는 작동하지 않는 휴대 전화 (노키아 가장자리 6)에서는 문제가 없습니다. 2 문제 :Flutter : 간단한 예제에서 입력 텍스트 필드가 올바르게 작동하지 않습니다 ..... 어디에서 잘못 되었나요?

1) 내가 탭하면 입력, 삽입 된 문자열 (입력 한 텍스트가 입력 됨)이 입력에 나타나지 않음

2) 입력에 초기 값을 사용하는 경우 입력을 누르면 텍스트를 쓸 수 없으며 커서를 원하는 위치에 놓습니다 (입력 내용의 다른 텍스트보다 먼저 나타남)

어떻게하면됩니까? 매우 감사합니다! 여기

내 코드입니다 : 나는 문제가 때마다 사용자가 텍스트를 편집 (또는 커서의 위치를 ​​변경) 위젯 변화의 상태를 것을 이해 마찬가지로 지금까지

import 'package:flutter/material.dart'; 

void main() { 
    runApp(
    new MaterialApp(
     title: 'Flutter Demo', 
     theme: new ThemeData(
     primarySwatch: Colors.blue 
    ), 
     home: new FlutterDemo() 
    ) 
); 
} 

class FlutterDemo extends StatefulWidget { 
    FlutterDemo({ Key key }) : super(key: key); 

    @override 
    _FlutterDemoState createState() => new _FlutterDemoState(); 
} 

class _FlutterDemoState extends State<FlutterDemo> { 

    @override 
    Widget build(BuildContext context) { 
    return new Scaffold(
     appBar: new AppBar(
     title: new Text('Input Demo') 
    ), 
     body: new Center(
     child: 
      new Input(
      value: new InputValue(text: 'via Dei Giacinti n° 8'), 
      labelText: 'INDIRIZZO' 
     ) 
    ) 
    ); 
    } 
} 

답변

3

등이 그 재건된다. 위젯이 빌드 될 때 Input의 텍스트를 지정하므로 변경되지 않습니다.

는 다음과 같은 작업을해야합니다 :

class _FlutterDemoState extends State<FlutterDemo> { 
    InputValue inputValue = new InputValue(text: 'via Dei Giacinti n° 8'); 

    @override 
    Widget build(BuildContext context) { 
    return new Scaffold(
     appBar: new AppBar(title: new Text('Input Demo')), 
     body: new Center(child: new Input(
      value: inputValue, 
      labelText: 'INDIRIZZO', 
      onChanged: (InputValue newInputValue) { 
       setState(() { 
       inputValue = newInputValue; 
       }); 
      }))); 
    } 
} 
+0

덕분에 - 코드가 완벽하게 작동! –

+0

답변 해 주셔서 감사합니다! 텍스트 입력을 문서화하기 시작했습니다 : https://flutter.io/text-input/ –