我们想在ListTile
的结尾处添加第二个可点击的图标。这是代码。这是我们正在修改的基本购物清单屏幕,因此我们要在“删除”图标旁边添加“收藏夹”图标。我尝试将其添加为字幕,但将其放置在行的中间。我尝试添加带孩子的行,但它从屏幕上删除了购物商品。
import 'package:flutter/material.dart';
import 'package:lightbridge_mobile/models/shopping_item.dart';
import 'package:lightbridge_mobile/models/user.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
class Shopping extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
final User user;
Shopping({Key key,@required this.user}) : super(key: key);
}
class _HomePageState extends State<Shopping> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>
();
final TextEditingController _textEditingController =
TextEditingController();
List<ShoppingItem> items = [
ShoppingItem('Milk'),ShoppingItem('Eggs'),ShoppingItem('Fabric Softener'),];
void initState() {
super.initState();
}
_onAddItempressed() {
_scaffoldKey.currentState.showBottomSheet<Null>((BuildContext context) {
return Container(
decoration: BoxDecoration(color: Colors.brown[200]),child: Padding(
padding: const EdgeInsets.fromLTRB(32.0,50.0,32.0,32.0),child: TextField(
controller: _textEditingController,decoration: InputDecoration(
hintText: 'Please enter an item',),onSubmitted: _onSubmit,);
});
}
_onSubmit(String s) {
if (s.isnotEmpty) {
insertShoppingItem(widget.user.userId,s);
items.add(ShoppingItem(s));
_textEditingController.clear();
setState(() {});
}
}
_onDeleteItempressed(item) {
items.removeAt(item);
setState(() {});
}
Future<void> insertShoppingItem(String userId,String item) async {
final response =
await http.post('http://35.226.136.162/api/Shopping',headers: {"Content-Type": "application/json",'accept': 'application/json',},body: json.encode({'userid' : userId,'Item' : item}));
if (response.statusCode == 204) {
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,appBar: AppBar(
title: Text('Sams Shopping List'),backgroundColor: Colors.brown[300],body: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.brown[300],Colors.brown[300]],begin: Alignment.bottomLeft,end: Alignment.topRight
)
),child: ListView.builder(
itemCount: items.length,itemBuilder: (context,index) {
return ListTile(
title: Text(
'${items[index].title}',style: TextStyle( color: Colors.white70,fontWeight: FontWeight.normal,fontSize: 20.0 ),// subtitle: GestureDetector(
// child: Icon(
// FontAwesomeIcons.heart,// size: 20.0,// color: Colors.brown[900],//),// onTap: () {
//_onDeleteItempressed(index);
// },// ),trailing: GestureDetector(
child: Icon(
FontAwesomeIcons.trash,size: 20.0,color: Colors.brown[900],onTap: () {
_onDeleteItempressed(index);
},);
},floatingactionButton: FloatingactionButton(
backgroundColor: Colors.brown[700],onpressed: _onAddItempressed,tooltip: 'Add item',child: Icon(Icons.add),);
}
}