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

带你快速掌握Flutter视图(Widgets)

无状态Widget和有状态Widget之间重要区别在于StatefulWidgets具有一个State对象,该对象存储状态数据并将其传递树重建中,因此状态不会丢失。...当构建 Widget 树,你会把 Animation 指定给一个 Widget 动画属性,比如 FadeTransition opacity,并告诉控制器开始动画。...= points; } 以上代码片段完整部分可以课程源码中查找。 绘制圆形和方形 Flutter中,你可以使用 CustomPaint 和 CustomPainter 类去绘制画布。...以下示例显示如何使用CustomPaint widget绘制阶段绘制。 它实现了抽象类CustomPainter,并将其传递给CustomPaintpainter属性。...参考资料 Flutter入门进阶实战携程网App

10.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android Compose 新闻App(六)导航动画、WebView、浮动按钮、底部导航

Android Compose 新闻App(六)导航动画、WebView、浮动按钮、底部导航 前言 正文 一、导航动画 ① 添加依赖 ② 使用 二、WebView使用 ① 导航传递URL参数 ② 配置WebView...popEnterTransition:当前页面另一个页面弹出后重新出现动画。 popExitTransition:当前页面弹出栈后隐藏动画。...这些动画可以直接设置NavHost中,下面我们设置一下: 下面我们运行一下: 可以看到当前页面进入详情页面有动画效果,而返回之前页面也是这个动画效果,两者一样,我们再试试其他动画...然后是设置点击跳转地方,如下图中所示: 这里列表数据new中是有url,因此我们几点将title和url传递过去,EpidemicNewsListPage中添加如下图所示代码...三、FloatingActionButton使用   浮动按钮日常开发中,也是很常见,下面我们EpidemicNewsListPage中添加一个浮动按钮。

4.1K20

Flutter文本、图片和按钮使用

与单一样式关键区别在于分片,即如何把一段字符串分为几个片段,给每个片段单独设置样式: Android中使用SpannableString实现 iOS中使用NSAttributedString来实现...FadeInImage控件提供图片占位功能,并支持图片加载完成淡入淡出视觉效果。由于Image支持gif格式,还可将一些炫酷加载动画作占位图。...ImageStream开始异步加载,加载完毕后,更新缓存 最后,通知_ImageState刷新UI 图片展示流程: ImageCache使用LRU缓存更新策略,默认最多存储1000张图片,最大缓存限制...分别定义FloatingActionButton、FlatButton与RaisedButton,功能完全一样,点击打印文字: FloatingActionButton(onPressed: () =...阅读Flutter SDK中Text、Image、FadeInImage、FloatingActionButton、FlatButton和RaisedButton源码,可以发现它们build函数中都有一个内部真正承载其视觉功能控件

41220

文本、图片和按钮Flutter中怎么用

面对这样需求,Android中,我们使用 SpannableString来实现;iOS中,我们使用NSAttributedString来实现;而在Flutter中国也有类似的概念,即TextSpan...FadeInImage控件提供了图片占位功能,并且支持图片加载完成淡入淡出视觉效果。此外,由于Image支持gif格式,我们甚至还可以将一些炫酷加载动画作为占位图。...图片加载过程由 ImageProvider 触发,而 ImageProvider 表示异步获取图片数据操作,可以资源文件、网络等不同渠道获取图片。...最大缓存限制为100MB,当限定空间已经存满数据,把最久没有被访问到图片清除。图片缓存只会在运行期间生效,也就是只缓存在内存中。...下面代码中,我分别定义了FloatingActionButton、FlatButton和RaisedButton,它们功能完全一样,点击打印一段文字: FloatingActionButton(

7.6K20

速读原著-Android应用开发入门教程(屏幕间跳转和事件传递)

6.4 屏幕间跳转和事件传递 在一般情况下,Android 每一个屏幕基本上就是一个活动(Activity),屏幕之间切换实际上就是活动间互相调用过程,Android 使用 Intent 完成这个动作...点击“Go”按钮 Forward 跳转到 ForwardTarget,这个内容 Java 源文件 Forward.java 以下片段中处理: public void onClick(View v)...本例中使用了 finish()函数表示当前活动结束,这样第二个活动(ForwardTarget)启动,第一个活动(Forward)已经不存在了。...6.4.2.带有返回值跳转 某些时候,跳转对象返回,跳转源头需要得到其返回结果,这样两个屏幕才可实现一些交互。...代码片段如下所示: private OnClickListener mCorkyListener = new OnClickListener() { public void

82810

速读原著-Android应用开发入门教程(屏幕间跳转和事件传递)

6.4 屏幕间跳转和事件传递 在一般情况下,Android 每一个屏幕基本上就是一个活动(Activity),屏幕之间切换实际上就是活动间互相调用过程,Android 使用 Intent 完成这个动作...点击“Go”按钮 Forward 跳转到 ForwardTarget,这个内容 Java 源文件 Forward.java 以下片段中处理: public void onClick(View v)...本例中使用了 finish()函数表示当前活动结束,这样第二个活动(ForwardTarget)启动,第一个活动(Forward)已经不存在了。...6.4.2.带有返回值跳转 某些时候,跳转对象返回,跳转源头需要得到其返回结果,这样两个屏幕才可实现一些交互。...代码片段如下所示: private OnClickListener mCorkyListener = new OnClickListener() { public void onClick(

89020

手把手教你读懂源码,ViewTouch事件传递流程详细剖析

ActivityonUserInteraction方法 该方法为空,注释可以知道,当此activity栈顶,触屏点击按home、back、menu键等都会触发此方法,一般会用于屏保。...如果event为空,则将动作设为ACTION_CANCEL,接着用一个for循环不断向下传递触摸事件,然后再清除所有触摸目标,最后回收拷贝对象。...开始这里,我们大概分析了一下事件分发流程,通过调用ActivitydispatchTouchEvent方法,事件会首先被派发到最顶级DecorView也就是ViewGroup,再由ViewGroup...方法,最终将事件ViewGroup传递 View,那么事件在后续如何传递,接下来继续分析。...Android事件分发机制简图 事件Activity.dispatchTouchEveent()开始传递,只要没有拦截,就会最上层(ViewGroup)开始一直往下传递,子View通过onTouchEvent

73070

Jetpack组件之Navigation

Safe Args插件传递参数 使用Safe Args Gradle插件,该插件可以生成简单对象和构造器类,支持destination之间进行类型安全导航和参数传递。...|| super.onOptionsItemSelected(item); } 当我们Fragment中添加菜单跳转目标,需要覆盖目标页面onCreateOptionsMenu...当用户通过显式深层链接打开您应用时,任务返回堆栈会被清除,并被替换为相应深层链接页面。当用户深层链接页面按下返回按钮,他们会返回到相应导航堆栈。...触发隐式深层链接,返回堆栈状态取决于是否使用 Intent.FLAG_ACTIVITY_NEW_TASK 标志启动隐式Intent。...定制FragmentNavigator 阅读FragmentNavigator源码,可以看到页面切换时候使用是replace(),这会造成Fragment生命周期重启,界面数据重新加载,不能复用

2.9K20

1. Jetpack源码解析---看完你就知道Navigation是什么了?

基本使用 虽然之前文章中已经很详细介绍了Navigation,但是这里也简单叙述一下我项目中具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...,但是需要你填写类全路径,同时你要保证实体类实现了序列化 我们可以通过把参数传递封装到Bundle中,然后再执行navigate()方法传递过去,例如: val args = Bundle() args.putString...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪这里。...= null && isTopLevelDestination); } } 原来如此,这里就应该清楚了,当我们切换Fragment,大概流程如下: 切换目标fragment栈顶...总结 4.1 流程 考虑到我们开始如果直接setupWithNavController 入口进行分析的话,可能不太容易找到怎么创建graph布局中fragment,以及NavHostFragment

2.1K20

Navigation用法

纯代码方式使用起来不是特别友好,并且Fragment和App bar管理和使用过程中显得很混乱。   ...:当你想要切换Fragment使用NavController对象,告诉它你想要去Navigation Graph中哪个Fragment,NavController会将你想去Fragment展示...5.使用NavController完成导航       经过以上步骤后,我们还需要通过NavController对象,代码中完成具体页面跳转工作,我们需要在MainFragment布局文件中添加一个...四.使用safe args插件传递参数   使用这个插件前,需要在project下build.gragle文件中添加以下代码: buildscript { dependencies {...我们强烈建议您将 Safe Args 用于导航和数据传递,因为它可以确保类型安全。这是Android Studio官网原话。

25020

Android Navigation + Fragment 制作APP主页面导航(步骤 + 源码)

相信你很多博客上或者自己项目上看过或者使用过。而现在可以通过另一个更简洁方式,那就是Activity+ Navigation + Fragment。...NavController得知切换目标,控制NavHost去显示B这个Fragment。 这么一说,你是否有一些理解了呢? 2....NavController控制显示Fragment 进入MainActivity,onCreate添加一句代码: //获取navController NavController...很明显,跳过去了,不过感觉还少了点什么,因为平常Fragment之间跳转都会传递参数过去,那么这个也要传参数,而Navigation也提供了这个功能,可以通过Bundle进行传参。...然后这个时候你再试一下,AB,然后点击系统返回键,就会返回到A,然后再点一下返回键就会退出当前应用。 神不神奇?

8.9K42

1. Jetpack源码解析---看完你就知道Navigation是什么了?

基本使用 虽然之前文章中已经很详细介绍了Navigation,但是这里也简单叙述一下我项目中具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...,但是需要你填写类全路径,同时你要保证实体类实现了序列化 我们可以通过把参数传递封装到Bundle中,然后再执行navigate()方法传递过去,例如: val args = Bundle()...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪这里。...= null && isTopLevelDestination); } } 原来如此,这里就应该清楚了,当我们切换Fragment,大概流程如下: 切换目标fragment栈顶...总结 4.1 流程 考虑到我们开始如果直接setupWithNavController 入口进行分析的话,可能不太容易找到怎么创建graph布局中fragment,以及NavHostFragment

2.5K30

1. Android_Jetpack组件---Naviagtion源码解析

基本使用 虽然之前文章中已经很详细介绍了Navigation,但是这里也简单叙述一下我项目中具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...,但是需要你填写类全路径,同时你要保证实体类实现了序列化 我们可以通过把参数传递封装到Bundle中,然后再执行navigate()方法传递过去,例如: val args = Bundle()...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪这里。...= null && isTopLevelDestination); } } 原来如此,这里就应该清楚了,当我们切换Fragment,大概流程如下: 切换目标fragment栈顶...总结 4.1 流程 考虑到我们开始如果直接setupWithNavController 入口进行分析的话,可能不太容易找到怎么创建graph布局中fragment,以及NavHostFragment

2.1K10

Material Design 实战 之第三弹—— 悬浮按钮和可交互提示

3.4 使用:当成FrameLayout使用即可,替换FrameLayout原来位置....它默认会使用colorAccent来作为按钮颜色, 我们还可以通过给按钮指定一个图标来表明这个按钮作用是什么。 下面开始来具体实现。...下面实战悬浮按钮点击事件: MainActivityonCreate()中添加以下代码: //悬浮按钮点击事件 FloatingActionButton fab = (FloatingActionButton...打个比方,如果我们执行删除操作时候只弹出一个Toast提示,那么用户要是误删了某个重要数据的话肯定会十分抓狂吧,但是如果我们增加一个Undo按钮,就相当于给用户提供了一种弥补措施,从而大大降低了事故发生概率...可以看到,Snackbar屏幕底部出现了,上面有我们所设置提示文字,还有一个Undo按钮,按钮是可以点击。 ? 过一段时间后Snackbar会自动屏幕底部消失。

1.7K30

谷歌官方组件Navigation你了解了吗?

以及Android Studio3.3使用 更新之后,其中还有一大亮点就是Navigation Editor(导航编辑器) Navigation 说到Navigation Editor我们就不得不先简单说一下...NavController: 管理NavHost中应用程序导航对象。 当用户整个应用程序中移动NavController会协调NavHost中目标内容交换。...当我们通过导航浏览我们应用程序时候,我们可以通知NavController我们要沿着导航图当中特定路径进行导航,或者直接导航特定目的地。...接下来NavController可以NavHost当中显示出适当目标视图。 导航组件有很多好处: 可以处理fragment事务。 默认情况下可以正确处理好各个事物之间前后操作。...Safe Args - 一种Gradle插件,可在目的地之间导航和传递数据提供安全数据类型。

1.1K00
领券