Theme组件可以为material APP定义主题数据(ThemeData)。Material组件库里很多组件都使用了主题数据, 如导航栏颜色、标题字体、Icon样式等。Theme内会使用InheritedWidget来为其子树共享样式数据。
经过上一篇文章,开发出来了第一个 Flutter 程序,入门程序 Hello World,这一篇文章就是接着上一篇。咱们来还原初始程序(开发第二个 Flutter 程序)。
经过上一篇文章的学习,我们大家可以了解到布局相关的组件,但是在实际开发中,我们还需要使用到其他的组件,比如按钮、图片、文本、输入框等等,这些组件都是我们在开发中经常使用的,所以本篇文章我们就来学习一下这些常用组件。
这本食谱包含演示如何在写Flutter应用程序时解决常见问题的食谱。 每个配方都是独立的,可以作为参考帮助您构建应用程序。
Theme 组件可以为 Material APP 定义主题数据(ThemeData)。Material 组件库里很多组件都使用了主题数据,如导航栏颜色、标题字体、Icon 样式等。Theme 内会使用 InheritedWidget 来为其子树共享样式数据。
AppBar(title属性,Text组件; action:动作响应;!!!! titleSpacing:标题文字间距; toolbarOpacity:标题透明度;)
其中最重要的两个组件是 ① 无状态的 StatelessWidget 组件 和 ② 有状态的 StatefulWidget 组件 ;
BackButton 组件通常作为界面回退按钮组件 , 直接使用构造函数创建 , 参数一般为空 ;
Flutter是谷歌的移动UI框架,可以运行在ios与android系统上,可以以完成app的开发,
对于没有相关基础的人,在正式学习App的UI之前,建议先了解Material Design相关的知识
学习自:Dart Flutter教程_Dart Flutter入门实战视频教程-2019年新出.
2.leading默认是一个返回箭头,有时候我们需要定义,有时候也仅是简单的返回上一层,就需要自定义了,他支持子组件。
通过 InheritedWidget 数据可以在 Widget 树中从上向下共享与传递,组件之间也可实现跨级传递数据
经过上一篇文章,开发出来了第二个 Flutter 程序,接下来是给大家详细的介绍下 Flutter 的布局组件。
3. colorBlendMode 颜色混合模式。要与color一起设置才有效果;
AlertDialog 对话框组件 , 可设置标题 , 内容 , 等一系列对话框相关的设置 , 下面代码是 AlertDialog 的构造函数源码 ;
1. alignment 对齐方式 。值为Alignment类型,如:Alignment.topCenter;
上面的runApp函数接受给定的Widget并使其成为widget树的根,框架强制根widget覆盖整个屏幕。所以官方不推荐把Widget层的控件来作为根控件,而是以MaterialApp或者WidgetApp作为父节点,上面的MyApp使用build函数构建了一个MaterialApp,将一个Scaffold脚手架包裹在里面,Scaffold显示的才是整个页面
如果您希望 body 的高度扩展到包含应用栏的高度并且 body 的顶部与应用栏的顶部对齐,则必须将Scaffold小部件的extendBodyBehindAppBar属性设置为true(默认值为false )。
【pushAndRemoveUntil与pushNamedAndRemoveUntil区别】
Flutter开发中有一个非常重要的理念,即一切皆为组件。Flutter中Widget不仅可以表示UI元素,也可以布局元素、动画、装饰效果。
ConvexBottomBar是一个底部导航栏组件,用于展现凸起的TAB效果,支持多种内置样式与动画交互。你可以在https://appbar.codemagic.app上找到在线样例。
BottomNavigationBar 组件是底部导航栏 , 用于设置给 Scaffold 组件的 bottomNavigationBar 字段 ;
[BuildContext] objects are actually [Element] objects. The [BuildContext] ,interface is used to discourage direct manipulation of [Element] objects.
创建空的 dart 文件 StatelessWidgetPage.dart , 导入最基础的材料设计包 ,
为了简化大家的使用,虽然flutter推荐所有的widget都有自己来进行搭建,但是在大框架上面,flutter提供了Material和Cupertino两种主题风格的Widgets集合,大家可以在这两种风格的继承上进行个性化定制和开发。
说一下背景,就是我们在编写 Flutter 程序的时候,我们目前是将所有的代码都编写在一个文件中,现在代码量比较少所以看上去还好,但是当代码量比较大的时候,这样的代码就会显得非常的臃肿,不利于我们的维护。
在 html 中常见的布局标签都可以使用 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属 性,这个时候我们可以用 Padding 组件处理容器与子元素直接的间距。
在学习Flutter的过程中我们第一个看见的控件应该就是MaterialApp,毕竟创建一个新的Flutter项目的时候,项目第一个组件就是MaterialApp,这是一个Material风格的根控件,基本用法如下:
列表布局是项目开发中最常用的一种布局方式,Flutter 中我们可以通过 ListView 来定义列表项,支持垂直和水平方向展示。
trailing: 设置拖尾将在列表的末尾放置一个图像。这对于指示主-细节布局特别有用。
我将带领大家尝试编写一个 Flutter 应用,感受一下 Flutter 开发的语法特点和运行效率。
这里多数一句 Flutter 提供了两套预设的主题UI 这些UI有很多的常量可以直接引入使用
当数据量很大的时候用矩阵方式排列比较清晰,此时我们可以用网格列表组件 GridView 实现布局。
现在我们的 APP 上面都会在屏幕下方有一排的按钮,点击不同的按钮可以进入不同的界面。就是说在界面的底部会有一排的按钮导航。可看下面的图示。
通过上一篇文章中,我编写了一个 buildButton 方法,用于构建按钮,这个方法中有一个 onTap 方法,用于处理按钮的点击事件,所以每个按钮的点击事件都会调用这个方法,接下来就要在这个方法中处理输入数据了。
1. Stack 组件 Stack 表示堆的意思,用此组件修饰的子组件会“堆”在一起。 常见属性: 1. alignment 对齐方式。值的类型为Alignment; 2. children 子组件。值的类型为Widget; 代码示例: import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件 class MyApp extends StatelessWidget{ @ov
在Flutter里面一切皆组件,不同于CSS的样式,在Flutter里面,样式的值也基本都是组件。
底部导航栏可轻松浏览并在单次点击之间在顶层视图之间切换。 BottomNavigationBar小部件实现此组件。
在前面的文章中我们讲到了Wrap的用法,介绍了Flutter中的流式布局,在文章的最后让大家实现如下效果:
Flutter 应用主题都封装在 ThemeData 类中 , 在 MaterialApp 的 theme 字段 , 可以设置 ThemeData 主题 , 可设置的选项如下 , 下面的 ThemeData 工厂构造函数中的可选参数就是可以设置的各种主题选项 ;
1.Widget的第一印象 1.1:初次的见面 首先我们来到第一次看到Widget类的场景,那时还对这个世界一无所知, 进入程序的入口时runApp函数中需要传入一个Widget对象,这便是第一眼。 初始项目中的做法是自定义了一个MyApp类继承自StatelessWidget。 void main()=>runApp(MyApp()); ---->[flutter/lib/src/widgets/binding.dart:778]---- void runApp(Widget app) {
持久性底部面板可以用于补充应用主要内容的信息,即使用户与应用程序的其他控件进行互动,也仍然可以看到持久的底部面板。可以使用Scaffold.showBottomSheet函数创建和显示持久性底部面板。
领取专属 10元无门槛券
手把手带您无忧上云