Flutter CupertinoNavigationBar iOS 风格导航栏的组件

devtools/2025/2/23 4:49:11/

CupertinoNavigationBar 是 Flutter 中用于创建具有 iOS 风格导航栏的组件,它提供了类似 iOS 应用中导航栏的外观和交互效果。下面将详细介绍它的相关信息和具体用法。

特点

  • iOS 风格:具有 iOS 系统原生导航栏的外观和动画效果,包括标题样式、按钮交互等。
  • 简单易用:可以方便地设置标题、左右两侧的操作按钮等。

构造函数及常用参数

CupertinoNavigationBar({Key? key,Widget? leading,Widget? automaticallyImplyLeading = true,String? middle,Widget? trailing,double? border = const BorderSide(color: CupertinoDynamicColor.withBrightness(color: Color(0x4D000000), darkColor: Color(0x29FFFFFF))),Color? backgroundColor,double? transitionBetweenRoutes = true,bool? automaticallyImplyMiddle = true,
})
  • leading:导航栏左侧的组件,通常用于放置返回按钮等。
  • automaticallyImplyLeading:是否自动根据导航栈情况显示返回按钮,默认为 true
  • middle:导航栏中间的标题,通常是一个字符串。
  • trailing:导航栏右侧的组件,通常用于放置操作按钮等。
  • border:导航栏底部的边框,默认为一条浅灰色的线。
  • backgroundColor:导航栏的背景颜色。
  • transitionBetweenRoutes:是否在路由切换时使用过渡动画,默认为 true
  • automaticallyImplyMiddle:是否自动显示中间的标题,默认为 true

具体用法示例

以下是一个简单的示例,展示了如何使用 CupertinoNavigationBar

import 'package:flutter/cupertino.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);Widget build(BuildContext context) {return const CupertinoApp(home: MyHomePage(),);}
}class MyHomePage extends StatelessWidget {const MyHomePage({Key? key}) : super(key: key);Widget build(BuildContext context) {return CupertinoPageScaffold(navigationBar: CupertinoNavigationBar(leading: CupertinoButton(padding: EdgeInsets.zero,child: const Icon(CupertinoIcons.back),onPressed: () {// 处理返回逻辑Navigator.pop(context);},),middle: const Text('我的主页'),trailing: CupertinoButton(padding: EdgeInsets.zero,child: const Icon(CupertinoIcons.search),onPressed: () {// 处理搜索逻辑print('点击了搜索按钮');},),),child: Center(child: const Text('这是主页内容'),),);}
}

运行效果如下
在这里插入图片描述


http://www.ppmy.cn/devtools/161100.html

相关文章

精准测量PMD:OCI-V光矢量分析系统赋能光纤通信性能优化

在光纤通信技术飞速发展的今天,偏振模色散(PMD)已成为制约系统性能的核心瓶颈之一。PMD会导致信号失真、码间串扰,并限制传输距离,严重影响系统的带宽容量和传输可靠性。因此,精准测量PMD对于优化光纤通信系…

Qt的QTabWidget的使用

在PyQt5中,QTabWidget 是一个用于管理多个选项卡页面的容器控件。以下是其使用方法的详细说明和示例: 1. 基本用法 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QLabel, QVBoxLayoutclass MainWindow(QMa…

数字信道化过程中多相滤波器组matlab代码及测试

数字信道化过程中多相滤波器组matlab代码及测试 列表 polyPhaseFilter/polyPhaseFilter.m , 1894 polyPhaseFilter/test_polyPhaseFilter.m , 792

基于eBPF的智能诊断平台:实现云原生系统的自愈型运维体系

引言:从被动运维到预测性自愈的进化 当某电商平台通过eBPF实时诊断系统提前48小时预测到MySQL集群的锁竞争风暴时,其核心是千万级指标粒度的内核状态分析与AI驱动的根因定位算法的结合。运维数据显示,该平台将平均故障恢复时间(M…

Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程

一、Flowable简介 Flowable 是一个轻量级、开源的业务流程管理(BPM)和工作流引擎,旨在帮助开发者和企业实现业务流程的自动化。它支持 BPMN 2.0 标准,适用于各种规模的企业和项目。Flowable 的核心功能包括流程定义、流程执行、任…

shell 脚本中的 sh 和 bash 是有区别的

shell 脚本中的 sh 和 bash 是有区别的 这两天在学习 shell 脚本相关知识,才知道 sh 和 bash 是不一样的。 bash 是 sh 的超集。bash 包含 sh。 比如 bash 中能用的 [[ ]] 和 数组 array("a" "b") 等,在 sh 中都不可用。 BASH 写…

238. 除自身以外数组的乘积(LeetCode 热题 100)

题目来源: 238. 除自身以外数组的乘积 - 力扣(LeetCode) 题目内容: 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nu…

Docker 私有仓库 Harbor 详解

1. 什么是 Harbor? Harbor 是一个开源的 Docker 镜像仓库管理平台,旨在提供更强大的企业级功能,支持私有 Docker 镜像仓库的管理。Harbor 为 Docker 提供了集中式的镜像管理服务,支持用户和权限管理、镜像版本控制、安全扫描、LD…