Ich muss TextFormField gelegentlich deaktivieren. Ich konnte weder im Widget noch im Controller ein Flag finden, um es einfach nur lesen oder deaktivieren zu lassen. Was ist der beste Weg, es zu tun?Deaktivieren Sie ein Textbearbeitungsfeld im Flattern
2
A
Antwort
4
Dies ist keine Funktion, die derzeit vom Framework bereitgestellt wird. Sie können jedoch eine FocusScope
verwenden, um zu verhindern, dass eine TextFormField
den Fokus anfordert.
So sieht es aus, wenn es deaktiviert ist.
Hier ist, wie es aussieht, wenn es aktiviert ist.
-Code für diesen unten:
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new HomePage(),
));
}
class HomePage extends StatefulWidget {
HomePageState createState() => new HomePageState();
}
class HomePageState extends State<HomePage> {
TextEditingController _controller = new TextEditingController();
bool _enabled = false;
@override
Widget build(BuildContext context) {
ThemeData theme = Theme.of(context);
return new Scaffold(
appBar: new AppBar(
title: new Text('Disabled Text'),
),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.free_breakfast),
onPressed:() {
setState(() {
_enabled = !_enabled;
});
}
),
body: new Center(
child: new Container(
margin: const EdgeInsets.all(10.0),
child: _enabled ?
new TextFormField(controller: _controller) :
new FocusScope(
node: new FocusScopeNode(),
child: new TextFormField(
controller: _controller,
style: theme.textTheme.subhead.copyWith(
color: theme.disabledColor,
),
decoration: new InputDecoration(
hintText: _enabled ? 'Type something' : 'You cannot focus me',
),
),
),
),
),
);
}
}
1
Es gibt eine andere Art und Weise dies erreicht werden kann, die auch nicht dazu führen, this issue. Hoffe, das könnte jemandem helfen.
Erstellen Sie AlwaysDisabledFocusNode
und übergeben Sie es an die focusNode
Eigenschaft einer TextField
.
class AlwaysDisabledFocusNode extends FocusNode {
@override
bool get hasFocus => false;
}
dann
new TextField(
focusNode: new AlwaysDisabledFocusNode(),
...
...
)
Verwandte Themen
- 1. Lebenszyklus im Flattern
- 2. Flattern - Layout ein Raster
- 3. Flattern - Eine gute Basis für ein Spiel?
- 4. Deaktivieren Sie ein ImageButton?
- 5. flattern android fingerprint integration
- 6. Wie ein Spinner deaktivieren, wenn Sie Text bearbeiten im Android
- 7. So aktivieren oder deaktivieren Sie ein Feld im Lebensmittelgeschäft
- 8. flattern Objekt innerhalb Array
- 9. LLBLGGen "Flattern" Tabellenrelationen
- 10. Bild flattern Pixelliste
- 11. Numpy flattern RGB-Bildfeld
- 12. Flattern TextField Autocomplete Overlay
- 13. Deaktivieren Sie SSL-Warnungen im Browser
- 14. JSON ObjectMapper in flattern
- 15. Flattern - SimpleDialog in FloatingActionButton
- 16. So deaktivieren Sie ToolStripMenuItem im Kontextmenü Dynamisch?
- 17. Problem mit flattern JS Menü
- 18. Fügen Sie verschiedene Routen/Bildschirme zur Flattern-App hinzu
- 19. Deaktivieren Sie alle Tastaturtaste im Vollbildmodus
- 20. Deaktivieren Sie das Klassenattribut im Entwurfsmodus
- 21. Deaktivieren Sie Service-Mitarbeiter im Entwicklungsmodus.
- 22. Deaktivieren Sie Firebase im Entwicklungsmodus in Android
- 23. So deaktivieren Sie den Sitzungswert im Codezeichen
- 24. So deaktivieren Sie bestimmte Daten im Kalender
- 25. Bash flattern ein Array zu Schlüssel-Wert-Paar
- 26. Flattern - In App-Interaktivität generieren
- 27. Flattern: Facebook und Google-Authentifizierung
- 28. PHP: flattern Array - schnellste Weg?
- 29. Deaktivieren Sie ein Textfeld mit CSS
- 30. Flattern - Der Bildschirm scrollt nicht
Filed https://github.com/flutter/flutter/issues/10645 –