当前位置: 首页 > news >正文

深圳高端电商网站建设者网站建设与管理专业前景

深圳高端电商网站建设者,网站建设与管理专业前景,公众号开发简单吗,长沙关键词优化方法​​Material Design 3 定义了三种导航模式#xff0c;其用法和对应的 Flutter 组件如下所示#xff1a; MD3 导航Flutter 组件用途Navigation barBottomNavigationBar小型屏#xff08;宽度小于640#xff09;Navigation drawerDrawer大型屏#xff08;宽度大于960…​​Material Design 3 定义了三种导航模式其用法和对应的 Flutter 组件如下所示 MD3 导航Flutter 组件用途Navigation barBottomNavigationBar小型屏宽度小于640Navigation drawerDrawer大型屏宽度大于960Navigation railNavigationRail中型屏宽度介于640和960之间 这篇博文要介绍的是 NavigationRail 的用法它主要用于宽度介于640到960之间的中型屏展现形式如下最左侧的竖长条 从设计规范的角度来讲导航数量最好控制在 3 到 7 个。 如果超出最大数量可以在顶部放一个菜单按钮点击后弹出用模态对话框展示的二级导航。 另外Navigation rail 顶部也可以放置 FAB用于凸显产品最核心的导航目的地 顶部还可以放置 Logo但做设计时一定要注意不要给用户造成「这是个按钮」的错觉。 以上是我们从设计层面做出的解读下面我们从代码层面看一下它的具体用法。 我们知道Flutter 针对不同屏幕大小内置了三种导航组件 NavigationRail 中型屏宽度介于 640 ~ 960 之间BottomNavigationBar 小型屏宽度小于 640Drawer 大型屏宽度大于 960 这三种组件一般会配合 Scaffold 一起使用为了让导航组件能够根据屏幕尺寸进行动态调整我们来实现一个「自适应」的 Scaffold。 步骤1新建一个 dart 源文件命名为 adaptive_scaffold.dart。 步骤2定义两个查询屏幕类型的小函数 bool _isLargeScreen(BuildContext context) {return MediaQuery.of(context).size.width 960.0; }bool _isMediumScreen(BuildContext context) {return MediaQuery.of(context).size.width 640.0; }步骤3定义一个表示导航目的地的结构体 AdaptiveScaffoldDestination class AdaptiveScaffoldDestination {// 标题final String title;// 图标final IconData icon;const AdaptiveScaffoldDestination({required this.title,required this.icon,}); }步骤4定义 AdaptiveScaffold。 class AdaptiveScaffold extends StatefulWidget {final Widget? title;final ListWidget actions;final Widget? body;final int currentIndex;final ListAdaptiveScaffoldDestination destinations;final ValueChangedint? onNavigationIndexChange;final FloatingActionButton? floatingActionButton;// ... }每个字段含义如下表所示 字段含义title页面标题可展示于 Drawer 或 AppBaractions传递给 AppBar 的 actionsbody传递给 Scaffold 的 bodycurrentIndex当前导航目的地序号destinations导航目的地列表onNavigationIndexChange导航发生改变时的回调floatingActionButtonFAB 当显示设备为大型屏时也就是 _isLargeScreen(context) true 时页面布局如下图所示 整体布局是一个 Row其子节点从左到右依次为Drawer、VerticalDivider 和 Expanded。 Row(children: [Drawer(),VerticalDivider(),Expanded(),], );其中Drawer 的子节点是一个 Column Column(children: [// 展示页面标题DrawerHeader(child: Center(child: widget.title,),),// 列表展示导航条目for (var d in widget.destinations)ListTile(leading: Icon(d.icon),title: Text(d.title),selected:widget.destinations.indexOf(d) widget.currentIndex,onTap: () _destinationTapped(d),),], ),竖分割线 VerticalDivider(width: 1,thickness: 1,color: Colors.grey[300], ),最后包裹在 Expanded 内的 Scaffold 用于展示页面的主要内容。 Expanded(child: Scaffold(appBar: AppBar(actions: widget.actions,),body: widget.body,floatingActionButton: widget.floatingActionButton,), ),以上是大型屏的展示效果。 当显示设备为中型屏时也就是 _isMediumScreen(context) true 时页面布局如下图所示 整体布局是一个 Scaffold Scaffold(appBar: AppBar(title: widget.title,actions: widget.actions,),body: Row(children: [// 导航NavigationRail(leading: widget.floatingActionButton,destinations: [...widget.destinations.map((d) NavigationRailDestination(icon: Icon(d.icon),label: Text(d.title),),),],selectedIndex: widget.currentIndex,onDestinationSelected: widget.onNavigationIndexChange ?? (_) {},),VerticalDivider(width: 1,thickness: 1,color: Colors.grey[300],),Expanded(child: widget.body!,),],), );当显示设备为小屏幕时页面布局如下 对应的代码 Scaffold(body: widget.body,appBar: AppBar(title: widget.title,actions: widget.actions,),bottomNavigationBar: BottomNavigationBar(items: [...widget.destinations.map((d) BottomNavigationBarItem(icon: Icon(d.icon),label: d.title,),),],currentIndex: widget.currentIndex,onTap: widget.onNavigationIndexChange,),floatingActionButton: widget.floatingActionButton, );以上就是可动态适配屏幕大小的 Scaffold 实现方案完整代码可移步至 Flutter 官方示例代码 adaptive_scaffold.dart。
http://www.pierceye.com/news/702175/

相关文章:

  • 用CMS做网站的好处网站流量消耗计算
  • asp 网站 模板网站建设的公司选择哪家好
  • 广州市越秀区建设局网站字体logo设计在线生成
  • 展示网站模版源码软件开发工具包sdk
  • 佛山网站建站网站程序免费下载
  • 课程设计报告 网站开发网络营销代运营外包公司
  • 手机html5网站模板网站怎么做查询功能
  • 有哪些做外贸的网站可做笔记的阅读网站
  • vs2010c 做网站无锡网站制作有哪些
  • 网站建设安全方案永康公司网站建设
  • 西安网站建设 早晨2022年网页游戏排行榜
  • 企业门户网站怎么做成都市双流区建设局官方网站
  • 山东站群网站建设邯郸网络运营中心地址在哪里
  • php程序员网站开发建设外贸平台运营
  • 学网站建设的好处舟山外贸建站公司
  • 建设电影会员网站首页三亚网红餐厅
  • 建网站维护需要多少钱网站怎么做单页
  • 做纱线的网站wordpress创建页面地址设置
  • 怎么做多个网站单点登录flash网站读条怎么做
  • 网站建设免费的做网站一个人可以吗
  • 网站建设公司价格差别西安网站建设winkuo
  • 途牛网站建设株洲网站优化
  • 网站聊天怎么做网站数据库连接错误
  • 株洲网站优化哪家强网页动态设计
  • 百度是什么网站培训中心网站建设论文
  • 自己做的网站如何管理线上推广是做什么的
  • 关键字挖掘爱站网xampp配置多网站
  • 做社交网站搭建网站的步骤
  • 外围网站做代理关于网站建设需要的研究方法
  • 成都网站建设赢展怎样建设尧都水果网站