2017-08-29 42 views
1

鍵盤與TextField無法正常工作。顫振 - 鍵盤沒有出現,並且不停留在所選字段

下面的代碼我把14 TextField,但是當點擊例如在字段14鍵盤不會出現,它不低於TextField挖掘。

你能幫我解決這個鍵盤問題沒有出現,並沒有讓我在選定的領域下是?

enter image description here

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MaterialApp(home: new HomePage())); 
} 

class HomePage extends StatefulWidget { 
    @override 
    HomePageState createState() => new HomePageState(); 
} 

class HomePageState extends State<HomePage> { 
    final TextEditingController _controller = new TextEditingController(); 

    @override 
    Widget build(BuildContext context) {  
    return new Scaffold(
     body: new Stack(
     children: <Widget>[ 
      new ListView(
      shrinkWrap: true, 
      children: <Widget>[ 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 1', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 2', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 3', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 4', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 5', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 6', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 7', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 8', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 9', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 10', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 11', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 12', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 13', 
       ), 
      ), 
       new TextField(
       controller: _controller, 
       decoration: new InputDecoration(
        hintText: 'Type something 14', 
       ), 
      ),    
      ], 
     )   
     ] 
    ) 
    ); 
    } 
} 
+0

前幾天我有類似的問題 - 鍵盤出現,如果你把應用程序在後臺,然後再次在前臺? (然後再次點擊'TextField'?)。我知道這並不能幫助你,但是看到它是否是相同的行爲會很有趣...... –

+0

@ david.mihola但我該怎麼做呢? – rafaelcb21

回答

2

您不應該讓所有文本字段共享相同的TextEditingController。每個使用一個單獨的控制器。

+0

謝謝你的鍵盤出現!但由於它們是鍵盤後面的最後一個,所以字段11至14。是否可以將鍵盤留在選定的字段下? – rafaelcb21

+2

這聽起來像是你正在運行到https://github.com/flutter/flutter/issues/10826,它有一個問題的解決方法,直到最終的修復程序到位。 –

+0

謝謝,你的代碼在https://gist.github.com/collinjackson/50172e3547e959cba77e2938f2fe5ff5完美工作(在57行我增加到600毫秒)。你知道什麼時候最終的解決方案會來嗎? – rafaelcb21

0

我無法重現的錯誤,一切似乎都正常工作。檢查您的Flutter SDK是否已更新(運行flutter doctor)。您是否嘗試將目標平臺更改爲IOS以查看錯誤是否仍然存在?

+0

我沒有mac和iOS。你嘗試在iOS上玩嗎? – rafaelcb21

+0

我試過了,一切都很順利。您可以通過在您的應用主題中設置自定義TargetPlatform來「模仿」IOS行爲。嘗試使用另一個鍵盤,看看是否有幫助。 – icazevedo