GestureDectector to clear keyboard

This commit is contained in:
andrei 2021-11-03 18:55:51 -04:00
parent a7f4838ce9
commit 5bb8060a95
1 changed files with 68 additions and 65 deletions

View File

@ -53,73 +53,76 @@ class _CheckList extends State<CheckList> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// TODO: implement build // TODO: implement build
return Scaffold( return GestureDetector(
appBar: AppBar( onTap: () => FocusScope.of(context).unfocus(),
title: Text((listData != null) ? listData!.name : 'Check List: $id'), child: Scaffold(
actions: (listData != null && listData!.isTemplate! && !_editable) appBar: AppBar(
? [ title: Text((listData != null) ? listData!.name : 'Check List: $id'),
IconButton( actions: (listData != null && listData!.isTemplate! && !_editable)
onPressed: () => _toggleEditable(), ? [
icon: const Icon(Icons.lock)) IconButton(
] onPressed: () => _toggleEditable(),
: (listData != null && listData!.isTemplate!) icon: const Icon(Icons.lock))
? [ ]
IconButton( : (listData != null && listData!.isTemplate!)
onPressed: () => _toggleEditable(), ? [
icon: const Icon(Icons.lock_open)) IconButton(
] onPressed: () => _toggleEditable(),
: [], icon: const Icon(Icons.lock_open))
), ]
body: RefreshIndicator( : [],
onRefresh: () async {
_loadListData();
_loadList();
},
child: ListView.builder(
itemCount: list.length,
itemBuilder: (context, index) {
return Card(
child: CheckboxListTile(
title: TextFormField(
enabled: (listData != null &&
(!listData!.isTemplate! || _editable)),
decoration: InputDecoration(border: InputBorder.none),
initialValue: list[index].text,
onChanged: (value) {
list[index].text = value;
_updateItem(list[index]);
},
),
controlAffinity: ListTileControlAffinity.leading,
value: list[index].value,
onChanged:
(listData != null && (!listData!.isTemplate! || _editable))
? ((value) {
_updateItem(list[index]);
setState(() {
list[index].value = value!;
});
})
: null,
),
);
},
), ),
body: RefreshIndicator(
onRefresh: () async {
_loadListData();
_loadList();
},
child: ListView.builder(
itemCount: list.length,
itemBuilder: (context, index) {
return Card(
child: CheckboxListTile(
title: TextFormField(
enabled: (listData != null &&
(!listData!.isTemplate! || _editable)),
decoration: InputDecoration(border: InputBorder.none),
initialValue: list[index].text,
onChanged: (value) {
list[index].text = value;
_updateItem(list[index]);
},
),
controlAffinity: ListTileControlAffinity.leading,
value: list[index].value,
onChanged: (listData != null &&
(!listData!.isTemplate! || _editable))
? ((value) {
_updateItem(list[index]);
setState(() {
list[index].value = value!;
});
})
: null,
),
);
},
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
if (listData!.isTemplate! && !_editable) {
ScaffoldMessenger.of(context)
..clearSnackBars()
..showSnackBar(SnackBar(content: Text("Template is locked")));
return;
}
// TODO implment adding items to lists
},
child: const Icon(Icons.check_box_outlined),
tooltip: "Add Item",
),
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
), ),
floatingActionButton: FloatingActionButton(
onPressed: () {
if (listData!.isTemplate! && !_editable) {
ScaffoldMessenger.of(context)
..clearSnackBars()
..showSnackBar(SnackBar(content: Text("Template is locked")));
return;
}
// TODO implment adding items to lists
},
child: const Icon(Icons.check_box_outlined),
tooltip: "Add Item",
),
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
); );
} }
} }