Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class _TeamTileState extends State<_TeamTile> {
- bool _editing = false;
- TextEditingController _textFieldController;
- FocusNode _focusNode;
- @override
- void initState() {
- super.initState();
- _textFieldController = TextEditingController.fromValue(TextEditingValue(text: widget.team.name));
- _focusNode = FocusNode();
- _focusNode.addListener(() {
- if (!_focusNode.hasFocus) {
- _toggleEditing();
- }
- });
- }
- void _focusOnNode() {
- Timer(const Duration(milliseconds: 100),
- () => FocusScope.of(context).requestFocus(_focusNode));
- }
- Widget _buildShowTile() {
- return GestureDetector(
- onTap: () {
- _toggleEditing();
- _focusOnNode();
- },
- child: Text(widget.team.name)
- );
- }
- Widget _buildEditTile() {
- return TextField(controller: _textFieldController, focusNode: _focusNode);
- }
- void _toggleEditing() {
- setState(() {
- _editing = !_editing;
- });
- }
- @override
- Widget build(BuildContext context) {
- return Column(
- children: <Widget>[
- ListTile(
- title: _editing ? _buildEditTile() : _buildShowTile()
- ),
- Divider()
- ]
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement