Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. class _TeamTileState extends State<_TeamTile> {
  2. bool _editing = false;
  3. TextEditingController _textFieldController;
  4. FocusNode _focusNode;
  5.  
  6. @override
  7. void initState() {
  8. super.initState();
  9. _textFieldController = TextEditingController.fromValue(TextEditingValue(text: widget.team.name));
  10. _focusNode = FocusNode();
  11. _focusNode.addListener(() {
  12. if (!_focusNode.hasFocus) {
  13. _toggleEditing();
  14. }
  15. });
  16. }
  17.  
  18. void _focusOnNode() {
  19. Timer(const Duration(milliseconds: 100),
  20. () => FocusScope.of(context).requestFocus(_focusNode));
  21. }
  22.  
  23. Widget _buildShowTile() {
  24. return GestureDetector(
  25. onTap: () {
  26. _toggleEditing();
  27. _focusOnNode();
  28. },
  29. child: Text(widget.team.name)
  30. );
  31. }
  32.  
  33. Widget _buildEditTile() {
  34. return TextField(controller: _textFieldController, focusNode: _focusNode);
  35. }
  36.  
  37. void _toggleEditing() {
  38. setState(() {
  39. _editing = !_editing;
  40. });
  41. }
  42.  
  43. @override
  44. Widget build(BuildContext context) {
  45. return Column(
  46. children: <Widget>[
  47. ListTile(
  48. title: _editing ? _buildEditTile() : _buildShowTile()
  49. ),
  50. Divider()
  51. ]
  52. );
  53. }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement