【问题标题】:How to format time in flutter in timePicker如何在timePicker中格式化时间
【发布时间】:2020-02-13 11:16:27
【问题描述】:

我正在尝试在我的颤振中实现一个时间选择器,它显示的时间如下图所示。

虽然我可以像这样格式化时间,但问题是它在小部件初始化时不显示当前时间。 我试过用这个。在这里查看我的代码。

TimeOfDay _currentTime = new TimeOfDay.now();

String timeText = 'Set A Time';
Future<Null> selectTime(BuildContext context) async {
      TimeOfDay selectedTime = await showTimePicker(
        context: context,
        initialTime: _currentTime,
      );

      MaterialLocalizations localizations = MaterialLocalizations.of(context);
      String formattedTime = localizations.formatTimeOfDay(selectedTime,
          alwaysUse24HourFormat: false);

      if (formattedTime != null) {
        setState(() {
          timeText = formattedTime;
        });
      }
    };

小部件日期选择器

class DatePicker extends StatelessWidget {
  DatePicker({
    this.formatedDate,
    this.selectedDate,
  });

  final String formatedDate;
  final Function selectedDate;

  @override
  Widget build(BuildContext context) {
    return FlatButton(
      padding: EdgeInsets.only(top: 30.0, bottom: 10.0),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.start,
        children: <Widget>[
          Icon(
            Icons.calendar_today,
            color: Color(kBorderTileColor),
          ),
          SizedBox(
            width: 50.0,
          ),
          Text(
            '$formatedDate',
            style: kInputTextStyle,
          ),
          SizedBox(
            width: 50.0,
          ),
          Text(
            'All Day',
            style: TextStyle(color: Color(kBorderTileColor)),
          ),
        ],
      ),
      onPressed: () {
        selectedDate(context);
      },
    );
  }
}

【问题讨论】:

    标签: flutter dart widget


    【解决方案1】:

    试试这个源代码。

      TimeOfDay _currentTime = new TimeOfDay.now();
      String timeText = 'Set A Time';
    
    
      Future<Null> selectTime(BuildContext context) async {
        TimeOfDay selectedTime = await showTimePicker(
          context: context,
          initialTime: _currentTime,
        );
    
        MaterialLocalizations localizations = MaterialLocalizations.of(context);
        if (selectedTime != null) {
          String formattedTime = localizations.formatTimeOfDay(selectedTime,
              alwaysUse24HourFormat: false);
          if (formattedTime != null) {
            setState(() {
              timeText = formattedTime;
            });
          }
        }
      }
    
     void setCurrentTime(){
        TimeOfDay selectedTime=new TimeOfDay.now();
          MaterialLocalizations localizations = MaterialLocalizations.of(context);
          String formattedTime = localizations.formatTimeOfDay(selectedTime,
              alwaysUse24HourFormat: false);
          if (formattedTime != null) {
            setState(() {
              timeText = formattedTime;
            });
          }
      }
    

    build(BuildContext context)调用这个函数

     Widget build(BuildContext context) {
        setCurrentTime();
        ...
      }
    

    【讨论】:

    • 而不是String timeText='Set A Time ' 我想在那里显示当前时间,但我无法做到。有什么办法吗?
    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多