首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flutter OK按钮导航中的Timepicker

在 Flutter 中,你可以使用 showTimePicker 函数来显示一个时间选择器,并在用户选择时间后通过点击 "OK" 按钮进行导航。以下是一个详细的示例,展示如何实现这一功能。

步骤 1: 创建一个 Flutter 项目

如果你还没有创建 Flutter 项目,可以使用以下命令创建一个新的 Flutter 项目:

代码语言:javascript
复制
flutter create time_picker_example
cd time_picker_example

步骤 2: 更新 pubspec.yaml

确保在 pubspec.yaml 文件中添加 flutter 依赖项(通常已经存在于新项目中):

代码语言:javascript
复制
dependencies:
  flutter:
    sdk: flutter

步骤 3: 创建主界面

lib/main.dart 文件中,创建一个主界面,其中包含一个按钮,用于显示时间选择器。

代码语言:javascript
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

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

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

class _MyHomePageState extends State<MyHomePage> {
  TimeOfDay _selectedTime;

  Future<void> _selectTime(BuildContext context) async {
    final TimeOfDay picked = await showTimePicker(
      context: context,
      initialTime: TimeOfDay.now(),
    );
    if (picked != null && picked != _selectedTime) {
      setState(() {
        _selectedTime = picked;
      });
      // 导航到新页面
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => TimeDisplayPage(time: _selectedTime)),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Time Picker Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () => _selectTime(context),
          child: Text('Select Time'),
        ),
      ),
    );
  }
}

class TimeDisplayPage extends StatelessWidget {
  final TimeOfDay time;

  TimeDisplayPage({@required this.time});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Selected Time'),
      ),
      body: Center(
        child: Text(
          'Selected time: ${time.format(context)}',
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

代码解释

  1. 主应用程序
    • MyApp 是主应用程序,设置了应用程序的标题和主题,并将 MyHomePage 作为主页。
  2. 主页状态
    • _MyHomePageStateMyHomePage 的状态类,包含一个 _selectedTime 变量来存储用户选择的时间。
    • _selectTime 方法使用 showTimePicker 显示时间选择器,并在用户选择时间后更新 _selectedTime 变量,并导航到 TimeDisplayPage 页面。
  3. 时间显示页面
    • TimeDisplayPage 是一个简单的页面,用于显示用户选择的时间。

运行应用程序

运行应用程序后,你会看到一个按钮 "Select Time"。点击按钮会显示时间选择器,选择时间并点击 "OK" 后,会导航到一个新页面,显示所选时间。

代码语言:javascript
复制
flutter run

通过这种方式,你可以在 Flutter 中使用时间选择器,并在用户点击 "OK" 按钮后进行导航。根据需要,你可以进一步自定义时间选择器和导航逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 按钮组件

Flutter提供了丰富按钮组件可以让我们快速构建UI界面。 常见按钮组件如下: 1. RaisedButton :凸起按钮; 2. FlatButton :扁平化按钮; 3....值类型为Widget; 3. textColor 文本颜色。值类型为Colors; 4. color 按钮颜色。值类型为Colors; 5. disabledColor 按钮禁用时颜色。...值类型为Colors; 6. disabledTextColor 按钮禁用时文本颜色。值类型为Colors; 7. splashColor 点击按钮时水波纹颜色。...值类型为Colors; 8. highlightColor 长按按钮按钮颜色。值类型为Colors; 9. elevation 阴影范围。...用浮动按钮实现类似闲鱼APP底部导航条效果,以下是代码示例: import "package:flutter/material.dart"; // 标签切换页 class Tabs extends

3.1K30
  • flutter底部导航栏切换

    “本文主要介绍flutter底部导航栏切换 做android原生开发时,底部导航栏是通过自定义布局,图片自己上网找,点击之后还要变色,在切换时候使用fragment,切换下一个同时上一个隐藏……...,所以总共五个dart文件,不需要资源文件 单独界面 Category.dart 每一个界面很简单,只需要显示有色方块即可,用同一个模板,如 分类界面,显示绿色框 import 'package:flutter...tabs.dart bottomNavigationBar组件,可以直接显示底部按钮,onTap方法进行交互, setState方法可以实时渲染修改界面,currentIndex表示当前按下位置 import...'), ), /** * 切换底部导航时候动态修改body内容 */ body:this....但是最好应该使用键值对形式,可能flutter有类似的方法我还没学到吧,不过,以上从理解简单程度和实现简单程度都是碾压原生开发

    3.5K20

    实现Flutter应用全局导航栏效果

    因此,设计一个清晰、易用导航栏对于提升用户体验和应用可用性至关重要。 在Flutter应用开发,实现全局导航栏效果意味着无论用户在应用哪个页面,导航内容和状态都保持一致。...本篇博客将探讨在Flutter应用实现全局导航栏效果方法,包括使用状态管理器、InheritedWidget、混入等技术。...: flutter: sdk: flutter provider: ^5.0.0 然后,在Flutter应用顶层Widget初始化Provider,通常是在main.dart文件...当点击按钮时,会更新count值,并在所有依赖于MyInheritedWidget地方进行通知和更新。...通过这种方式,我们实现了全局导航栏效果,并确保了导航栏在不同页面之间同步更新。 总结 在本文中,我们探讨了在Flutter应用实现全局导航栏效果不同方法,并提供了相关案例研究。

    11711

    Flutter 创建可拖动浮动操作按钮

    Flutter 允许您使用FloatingActionButton小部件添加浮动操作按钮。但是,它不允许您拖动按钮。如果你想让它可拖动怎么办。...下面是用于创建可拖动浮动操作按钮类。它有一些参数,包括child(要设置为按钮小部件)、initialOffset(移动前初始偏移量)和onPressed(单击按钮时调用回调)。...然后,您可以从 RenderBox size 属性获取父级大小。您必须小心,因为必须在构建树之后调用 findRenderObject 方法。...一个简单圆形小部件作为child参数传递,这意味着它成为可拖动按钮。您可以为按钮使用任何小部件,包括 Flutter FloatingActionButton小部件。...创建可拖动浮动操作按钮

    5.6K10

    深入探究Flutter页面导航器:Navigator详解

    总之,Navigator在Flutter应用程序扮演着导航和页面管理关键角色,它为用户提供了良好导航体验,并使应用程序页面间交互更加流畅和高效。 2....Navigator基础 在Flutter,Navigator是用来管理应用程序页面导航组件。它负责维护页面堆栈,并处理页面之间切换、跳转和返回操作。...了解Navigator基本概念和工作原理对于理解Flutter应用程序页面导航机制非常重要。 3. 页面路由 在Flutter,页面路由(Page Route)是指应用程序各个页面或屏幕。...导航器嵌套 在Flutter应用,有时我们需要在一个页面内部管理多个子页面,这时就可以使用导航器嵌套技术。...导航器嵌套允许我们在一个页面内部创建多个导航器,并分别管理它们之间导航栈,从而实现更灵活和复杂页面管理。本节将学习如何在Flutter应用实现导航嵌套,并演示如何在多个导航器之间进行导航

    96910

    Flutter 自定义动画底部导航

    在这个博客,我们将探索Flutter自定义动画底部导航栏。我们将看到如何实现自定义动画底部导航演示程序以及如何在您 Flutter 应用程序中使用它。...它提供了应用程序高级视角之间快速导航。对于更大屏幕,侧面导航可能更合适。 这个演示视频展示了如何在 flutter 中使用自定义底部导航栏。...它展示了自定义底部导航栏将如何在您 Flutter 应用程序工作。它显示当用户点击底部导航栏图标时,它们将被动画化并显示标签文本。当用户点击任何图标时,颜色也会发生变化和动画。...Listitems:该属性用于定义底部导航显示按钮外观。这应该至少有两个项目,最多五个。 onItemSelected:该属性用于在按下项目时调用回调。...这是我对用户交互自定义动画底部导航一个小介绍。

    8.9K30

    Flutter文本、图片和按钮使用

    而文本、图片和按钮则是这些不同UI框架构建视图都要用到最基本控件。...1 文本控件 文本是视图系统常见控件,用来显示一段特定样式字符串,就比如Android里TextView、iOSUILabel。而在Flutter,文本展示是通过Text控件实现。...这就对应按钮控件两个最重要参数: onPressed参数用于设置点击回调,告诉Flutter按钮被点击时通知我们。...最后学习按钮控件。Flutter提供多种按钮控件,使用方法类似。控件初始化child参数用于设置按钮长什么样,而onPressed参数则用于设置点击回调。...5 FAQ 阅读Flutter SDKText、Image、FadeInImage,以及按钮控件FloatingActionButton、FlatButton与RaisedButton源码,在build

    54920

    Flutter实现带导航PageView页面

    一.效果图 二.页面分析 这里我们只用关注资讯页面就行,资讯页面大概可以分为两个部分: 1.顶部导航栏 顶部导航栏有3个固定tab,选中时候字体变大,并且改变颜色,如果直接使用系统TabBar...控件的话就不能改变字体大小了,所以这里自定义导航栏,可以自己来实现想要效果。...如果Tab是动态的话可以使用横向ListView,这里由于只有固定3个所以直接使用Row嵌套3个Text来实现这个导航栏。...三.码代码 1.构建导航栏 margin:设置距离顶部间距为状态栏高度。 height:设置导航栏高度。...PageView通过 currentIndex来关联更新 顶部text和主题页面之间切换,滑动切换页面的时候,同步更新顶部tab导航栏。

    2.2K00
    领券