Listview 如何在flatter中向末尾抽屉添加列表

Listview 如何在flatter中向末尾抽屉添加列表,listview,flutter,navigation-drawer,Listview,Flutter,Navigation Drawer,我正在尝试做一个应用程序,我想显示一些日期使用网络电话,我已经做了。现在我想把日期表放在我的收尾抽屉里,谢谢 这是我的密码: Future<List> addDateList(int counter,String date) async { DateTime oops = DateTime.now(); String date = DateFormat('dd/MM/yyyy').format(oops); List<String> dat

我正在尝试做一个应用程序,我想显示一些日期使用网络电话,我已经做了。现在我想把日期表放在我的收尾抽屉里,谢谢

这是我的密码:

    Future<List> addDateList(int counter,String date) async {
    DateTime oops = DateTime.now();
    String date = DateFormat('dd/MM/yyyy').format(oops);
    List<String> dateList = List();

    http.Response response = await http.get(
        'https://www.example.com/json/' + date + '-17.json');

    if (response.statusCode == 200) {
      dateList.add(date);
    } else {
      date = getpreviousdate(date);
      return addDateList(counter,date);
    }
    if (dateList.length == 7) {
      print(dateList);

      return dateList;
    } else {
      date = getpreviousdate(date);
      return addDateList(++counter, (date));
    }
  }

  getpreviousdate(String date) {
    DateTime pastday = DateTime.now().subtract(Duration(days: 1));
    date = DateFormat('dd/MM/yyyy').format(pastday);

    return date;
  }
Future addDateList(int计数器,字符串日期)异步{
DateTime oops=DateTime.now();
字符串日期=日期格式('dd/MM/yyyy')。格式(oops);
List dateList=List();
http.Response-Response=等待http.get(
'https://www.example.com/json/“+date+”-17.json”);
如果(response.statusCode==200){
日期列表。添加(日期);
}否则{
日期=getpreviousdate(日期);
返回addDateList(计数器,日期);
}
if(dateList.length==7){
打印(日期列表);
返回日期表;
}否则{
日期=getpreviousdate(日期);
返回addDateList(++计数器,(日期));
}
}
getpreviousdate(字符串日期){
DateTime pastday=DateTime.now().subtract(持续时间(天:1));
日期=日期格式('dd/MM/yyyy')。格式(过去日期);
返回日期;
}

因此,如果您只想从收集的日期字符串创建ListView,可以这样做:

@不可变
类DroperView扩展了无状态小部件{
警察局局长({
@需要此项,
}):断言(项!=null);
最后清单项目;
@凌驾
小部件构建(构建上下文){
回程抽屉(
子:ListView(
//重要提示:从ListView中删除任何填充。
填充:EdgeInsets.zero,
子项:items.map((字符串项)=>ListTile(标题:Text(项)),
),
);
}
}
我更喜欢为这样的事情创建一个新类


编辑

好的,您可以试试这个(我没有运行它,因为我没有这样的API来测试它,但它应该工作得很好):

导入“包装:颤振/材料.省道”;
导入“包:intl/intl.dart”;
将“package:http/http.dart”导入为http;
void main()=>runApp(MyApp());
///[MyApp]类-一切从何开始!:D
类MyApp扩展了StatefulWidget{
MyApp({Key}):超级(Key:Key);
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
int _计数器=0;
列表_dateList=[];
@凌驾
void initState(){
super.initState();
addDateList();
}
Future addDateList({DateTime date})异步{
final DateTime d=date??DateTime.now();
字符串dateString=DateFormat('dd/MM/yyyy')。格式(d);
http.Response-Response=等待http.get('https://www.example.com/json/$dateString-17.json');
如果(response.statusCode==200){
设置状态(){
_添加(日期字符串);
_计数器++;
});
}
//如果达到所需长度或计数器过高,则中断执行
如果(_dateList.length>=7 | | | u counter>50)返回true;
设置状态(){
_计数器++;
});
返回addDateList(日期:d.subtract(持续时间:1天));
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“抽屉演示”,
家:脚手架(
appBar:appBar(
标题:常量文本(“主页”),
),
endDrawer:MyDrawer(项目:\日期列表),
正文:中(
子项:const Text('带LISTVIEW的抽屉-演示'),
),
),
);
}
}
类MyDrawer扩展了无状态小部件{
常数我的抽屉({
@需要此项,
}):断言(项!=null);
最后清单项目;
@凌驾
小部件构建(构建上下文){
回程抽屉(
子:ListView(
//重要提示:从ListView中删除任何填充。
填充:EdgeInsets.zero,
子项:items.map((字符串项)=>ListTile(标题:Text(项))).toList(),
),
);
}
}

您只需使用相应的类创建一个
抽屉
,并将其添加到
Scaffold
endDrawer
参数中即可。。。或者你想要一个例子来说明这个
抽屉如何操作吗?我试过了。你能给我举一个这样的例子吗?我补充了一个答案。尽管我必须告诉你,你的代码设置方式不会像你期望的那样工作。您的
getPreviousDate()
中似乎存在漏洞,因为您对返回值不做任何处理。感谢您的帮助..我已经对代码进行了更改..我认为这会起作用..pl让我知道您的观点。我仍然不知道如何在您的类中传递我的代码并获得结果。