it-swarm.com.de

Flatter Keyboard lässt das Textfeld ausblenden

Ich bin neu zum Flattern. Ich habe ein Formular mit einem Textfeld hinzugefügt, und wenn ich auf das Textfeld und die Tastatur klickt, wird das Textfeld angezeigt.

Das ist mein Code: 

Widget build(BuildContext context) {

MediaQueryData mediaQuery = MediaQuery.of(context);
return new Scaffold(
  body:  new Container(
      color: Colors.purple,
      constraints: new BoxConstraints.expand(),
      padding: EdgeInsets.only(top: 10.0,left: 10.0,right: 10.0, bottom: mediaQuery.viewInsets.bottom, ),
      child: SingleChildScrollView(
        child: Container(
            child: Column(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  SizedBox(height: 12.0),
                  Text(
                    'What is your Bussiness Name?',
                    style: TextStyle(fontSize: 24.0),
                  ),
                  AppForm(),
                ],
              ),
            padding: EdgeInsets.only(left: 10.0,right: 10.0, bottom: mediaQuery.viewInsets.bottom),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.all(Radius.circular(30.0)),
              color: Colors.white,
                ),
              )
          )
      ),
    );
  }

Dies ist das Ergebnis, ohne die Tastatur zu öffnen: Bild ohne Tastatur

Dies ist das Bild nach dem Öffnen der Tastatur: Bild nach dem Öffnen der Tastatur


Hier ist mein Flatterdoktorausgang.

Doctor summary (to see all details, run flutter doctor -v): [√] Flutter 
(Channel beta, v0.5.1, on Microsoft Windows [Version 10.0.17134.165], locale 
en-US) [√] Android toolchain - develop for Android devices (Android SDK 
28.0.0) [√] Android Studio (version 3.1) [!] VS Code, 64-bit edition (version 
1.25.1) [!] Connected devices ! No devices available ! Doctor found issues in 
2 categories.

eine Idee, wie man das beheben kann?

4
Nirodya Gamage

Dies war bei mir der Fall. Sie wickeln definitiv ein Gerüst in ein anderes Gerüst ein. In Ihrer Flatter-App sollte sich nur ein Gerüst-Widget befinden, d. h. das Hauptlayout. Entfernen Sie einfach alle Ahnengerüste und behalten Sie nur ein Gerüst. Wickeln Sie kein Gerüst in ein anderes Gerüst. Trotzdem können Sie ein Gerüst in einen Behälter einwickeln. 

Stellen Sie sicher, dass Sie dies in Ihrer main.Dart-Datei nicht tun: -

✖✖

return Scaffold(
body : YourNewFileName(),
);

Trotz obigem Code machen Sie folgendes: - ✔✔

return YourNewFileName();
5
Aman Malhotra

resizeToAvoidBottomPadding isDeprecated Verwenden Sie stattdessen resizeToAvoidBottomInset: true

2
Ya Si

Diese Antwort ist nicht spezifisch für die obige Frage, kann jedoch für diejenigen nützlich sein, die immer noch Probleme mit der Tastatur haben, die das ausgewählte Textfeld abdeckt, unabhängig davon, was sie tun. Ich habe diese Seite aufgerufen, als ich versucht habe, ein solches Problem zu beheben.

Vor dem Problem habe ich einige Änderungen vorgenommen, um meinen Begrüßungsbildschirm beim Start der App zu verbessern. Auf Empfehlung einer anderen Person hatte ich die folgende Zeile in das <resources><style> Abschnitt der Datei styles.xml im Ordner Android/app/src/main/res/values

<item name="Android:windowFullscreen">true</item>

Dies hatte den unerwarteten Effekt, dass Felder in der Haupt-App nicht mehr angezeigt werden, wenn die Tastatur angezeigt wird. Für manche mag das offensichtlich sein, für mich aber nicht.

Hoffe diese Info hilft jemandem.

1
GrahamD
 new Scaffold(
      appBar: new AppBar(
          ...
      resizeToAvoidBottomPadding: true,
      ....

Problem behoben, dass Textfeld durch Tastatur ausgeblendet wurde

0
songoku1610