Flutter 方法';选择时间';isn';t为类定义'_创建WeckerPage';
我在我们的第一个dart文件(main.dart)中使用了一个临时的showTimePickerFlutter 方法';选择时间';isn';t为类定义'_创建WeckerPage';,flutter,dart,Flutter,Dart,我在我们的第一个dart文件(main.dart)中使用了一个临时的showTimePicker 导入“包装:颤振/材料.省道”; 导入“dart:async”; //导入“包:android_alarm_manager/android_alarm_manager.dart”; void main()=>runApp(MyApp()); 类MyApp扩展了无状态小部件{ @凌驾 小部件构建(构建上下文){ 返回材料PP( 标题:“颤振演示”, 主题:主题数据( 主样本:颜色。蓝色, ), 主页:
导入“包装:颤振/材料.省道”;
导入“dart:async”;
//导入“包:android_alarm_manager/android_alarm_manager.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:CreateWeckerPage(“Wecker-erstellen”),
);
}
}
类CreateWeckerPage扩展StatefulWidget{
CreateWeckerPage(this.name):super();
最后的字符串名;
@凌驾
_CreateWeckerPage createState()=>\u CreateWeckerPage();
}
类_CreateWeckerPage扩展状态{
TimeOfDay _time=新的TimeOfDay.now();
//泽特选择器功能
Future\u selectTime(构建上下文)异步{
最终拾取的日期时间=等待显示时间选择器(
上下文:上下文,
初始时间:_时间,
生成器:(BuildContext上下文,小部件子项){
返回MediaQuery(
数据:MediaQuery.of(context).copyWith(alwaysUse24HourFormat:true),
孩子:孩子,
);
}
);
如果(已拾取!=null&&picked!=\u时间){
打印('Timeselected:${u time.toString()}');
设置状态(){
_时间=已拾取;
});
}
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“${widget.name}”)
),
主体:容器(
子:列(
儿童:[
Text('所选时间:${u Time.toString()}'),
升起的按钮(
已按下:(){
_选择时间(上下文);
},
子:文本(
“Zeit eingeben”,
),
),
],
),
),
);
}
}
我想引用代码,开始将页面外包到另一个dart文件中,并将函数_selectTime外包到另一个dart文件中。所以我创建了一个名为createWeckerPage.dart的文件
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:wecker/Funktions/timePicker.dart';
class CreateWeckerPage extends StatefulWidget{
CreateWeckerPage(this.name):super();
final String name;
@override
_CreateWeckerPage createState() => _CreateWeckerPage();
}
class _CreateWeckerPage extends State<CreateWeckerPage>{
TimeOfDay _time;
@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: Text('${widget.name}')
),
body: Container(
child: Column(
children: <Widget>[
Text('Time Selected: ${_time.toString()}'),
RaisedButton(
onPressed: (){
testClass.testFunktion();
_time = _selectTime(context):
);
},
child: Text(
"Zeit eingeben",
),
),
],
),
),
);
}
}
导入“包装:颤振/材料.省道”;
导入“dart:async”;
导入“包:wecker/Funktions/timePicker.dart”;
类CreateWeckerPage扩展StatefulWidget{
CreateWeckerPage(this.name):super();
最后的字符串名;
@凌驾
_CreateWeckerPage createState()=>\u CreateWeckerPage();
}
类_CreateWeckerPage扩展状态{
一天的时间;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“${widget.name}”)
),
主体:容器(
子:列(
儿童:[
Text('所选时间:${u Time.toString()}'),
升起的按钮(
已按下:(){
testClass.testFunktion();
_时间=\选择时间(上下文):
);
},
子:文本(
“Zeit eingeben”,
),
),
],
),
),
);
}
}
还有一个计时器
import 'package:flutter/material.dart';
import 'dart:async';
Future<Null> _selectTime(BuildContext context) async {
TimeOfDay _time = TimeOfDay.now();
final TimeOfDay picked = await showTimePicker(
context: context,
initialTime: _time,
builder: (BuildContext context, Widget child) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true),
child: child,
);
}
);
if(picked != null && picked != _time){
print('Timeselected: ${_time.toString()}');
return picked;
}
return _time;
}
导入“包装:颤振/材料.省道”;
导入“dart:async”;
Future\u selectTime(构建上下文)异步{
TimeOfDay _time=TimeOfDay.now();
最终拾取的日期时间=等待显示时间选择器(
上下文:上下文,
初始时间:_时间,
生成器:(BuildContext上下文,小部件子项){
返回MediaQuery(
数据:MediaQuery.of(context).copyWith(alwaysUse24HourFormat:true),
孩子:孩子,
);
}
);
如果(已拾取!=null&&picked!=\u时间){
打印('Timeselected:${u time.toString()}');
回采;
}
返回时间;
}
问题是,正如标题中所述,createWeckerPage类中没有定义方法_selectTime。我如何实现我的Future _selectTime功能以在createWeckerPage.dart中工作并在应用程序中显示
提前谢谢。下划线表示私人,您可以删除下划线
请从
_selectTime(BuildContext context)
到
_selectTime(BuildContext context)
selectTime(BuildContext context)