Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何创建类似于';我的活动&x27;关于谷歌颤振_Flutter_Dart - Fatal编程技术网

Flutter 如何创建类似于';我的活动&x27;关于谷歌颤振

Flutter 如何创建类似于';我的活动&x27;关于谷歌颤振,flutter,dart,Flutter,Dart,我正试图在《颤栗》中翻开历史的一页。当我在我的主页上按“a”、“b”或“c”时,我希望它能显示我按了什么以及我在历史记录页面上按的日期,类似于谷歌上的“我的活动”。这就是我到目前为止所想到的,我甚至不知道这是否是最好的方法。它也有一个错误 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override W

我正试图在《颤栗》中翻开历史的一页。当我在我的主页上按“a”、“b”或“c”时,我希望它能显示我按了什么以及我在历史记录页面上按的日期,类似于谷歌上的“我的活动”。这就是我到目前为止所想到的,我甚至不知道这是否是最好的方法。它也有一个错误

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int count = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: ListView(
      children: <Widget>[
        Tile(text: Text("a")),
        Tile(text: Text("b")),
        Tile(text: Text("c")),
      ],
    ));
  }
}

int count = 0;

class Tile extends StatefulWidget {
  final Text text;
  Tile({this.text});

  @override
  TileState createState() => TileState();
}

class TileState extends State<Tile> {
  @override
  Widget build(BuildContext context) {
    return ListTile(
      title: widget.text,
      onTap: () {
        count++;
        print(count);
        Navigator.push(
          context,
          MaterialPageRoute(builder: (context) => HistoryPage()),
        );
      },
    );
  }
}

class HistoryPage extends StatefulWidget {
  @override
  HistoryPageState createState() => HistoryPageState();
}

class HistoryPageState extends State<HistoryPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          leading: IconButton(
              icon: Icon(Icons.arrow_back),
              onPressed: () {
                Navigator.pop(context);
              })),
      body: ListView.builder(
        itemCount: count,
        itemBuilder: (BuildContext context, int index) {
          return ListTile(
            title: Text(text),
          );
        },
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
整数计数=0;
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:ListView(
儿童:[
平铺(文本:文本(“a”)),
瓷砖(文字:文字(“b”)),
平铺(文本:文本(“c”)),
],
));
}
}
整数计数=0;
类Tile扩展StatefulWidget{
最后文本;
平铺({this.text});
@凌驾
TileState createState()=>TileState();
}
类扩展状态{
@凌驾
小部件构建(构建上下文){
返回列表块(
标题:widget.text,
onTap:(){
计数++;
打印(计数);
导航器。推(
上下文
MaterialPage路由(生成器:(上下文)=>HistoryPage()),
);
},
);
}
}
类HistoryPage扩展StatefulWidget{
@凌驾
HistoryPageState createState()=>HistoryPageState();
}
类HistoryPageState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
领先:IconButton(
图标:图标(图标。箭头返回),
已按下:(){
Navigator.pop(上下文);
})),
正文:ListView.builder(
itemCount:count,
itemBuilder:(构建上下文,int索引){
返回列表块(
标题:文本(Text),
);
},
),
);
}
}

如何创建我的用户历史记录页?

您可以复制下面的粘贴运行完整代码
您可以将单击事件放入
历史记录列表
,并使用
列表视图
显示此
历史记录列表

工作演示

完整代码

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int count = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: ListView(
      children: <Widget>[
        Tile(text: Text("a")),
        Tile(text: Text("b")),
        Tile(text: Text("c")),
      ],
    ));
  }
}

int count = 0;
List<History> historyList = [];

class History {
  String data;
  DateTime dateTime;

  History({this.data, this.dateTime});
}

class Tile extends StatefulWidget {
  final Text text;
  Tile({this.text});

  @override
  TileState createState() => TileState();
}

class TileState extends State<Tile> {
  @override
  Widget build(BuildContext context) {
    return ListTile(
      title: widget.text,
      onTap: () {
        count++;
        print(count);
        historyList
            .add(History(data: widget.text.data, dateTime: DateTime.now()));
        Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => HistoryPage(),
            ));
      },
    );
  }
}

class HistoryPage extends StatefulWidget {
  @override
  HistoryPageState createState() => HistoryPageState();
}

class HistoryPageState extends State<HistoryPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          leading: IconButton(
              icon: Icon(Icons.arrow_back),
              onPressed: () {
                Navigator.pop(context);
              })),
      body: ListView.builder(
        itemCount: historyList.length,
        itemBuilder: (BuildContext context, int index) {
          return ListTile(
            title: Text(
                ' ${historyList[index].data}   ${historyList[index].dateTime.toString()}'),
          );
        },
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
整数计数=0;
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:ListView(
儿童:[
平铺(文本:文本(“a”)),
瓷砖(文字:文字(“b”)),
平铺(文本:文本(“c”)),
],
));
}
}
整数计数=0;
列表历史列表=[];
课堂历史{
字符串数据;
日期时间日期时间;
历史记录({this.data,this.dateTime});
}
类Tile扩展StatefulWidget{
最后文本;
平铺({this.text});
@凌驾
TileState createState()=>TileState();
}
类扩展状态{
@凌驾
小部件构建(构建上下文){
返回列表块(
标题:widget.text,
onTap:(){
计数++;
打印(计数);
历史学者
.add(历史记录(数据:widget.text.data,dateTime:dateTime.now());
导航器。推(
上下文
材料路线(
生成器:(上下文)=>HistoryPage(),
));
},
);
}
}
类HistoryPage扩展StatefulWidget{
@凌驾
HistoryPageState createState()=>HistoryPageState();
}
类HistoryPageState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
领先:IconButton(
图标:图标(图标。箭头返回),
已按下:(){
Navigator.pop(上下文);
})),
正文:ListView.builder(
itemCount:historyList.length,
itemBuilder:(构建上下文,int索引){
返回列表块(
标题:正文(
“${historyList[index].data}${historyList[index].dateTime.toString()}”),
);
},
),
);
}
}

是否有办法只查看日期、年份、小时和分钟?您可以使用${historyList[index].dateTime.year.toString()}${historyList[index].dateTime.month.toString()}${historyList[index].dateTime.day.toString()}或使用DateFormat