flutter入口,flutter

Flutter状态管理--GetX的简单使用

一、前言

创新互联公司-专业网站定制、快速模板网站建设、高性价比泰山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式泰山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖泰山地区。费用合理售后完善,10余年实体公司更值得信赖。

Flutter开发,就需要对各种状态的管理,就是在请求数据的时候需要实时变化,各种交互变化等,在没有使用GetX之前使用Provider,用Provider的时候觉得真香,挺方便的,需要刷新的时候直接 notifyListeners(); 用了GetX之后觉得Provider太繁琐了。这边介绍下GetX的使用以及常用的方法。

二、 GetX

GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。

1、相关优势:

三、使用

1、第一步 引入get

2、第二步

修改入口、配置路由

3、路由

Routes类

Pages类

4、状态管理

我一般一个page对应一个controller, controller来处理逻辑,控制page.

简单使用

5、依赖注入

依赖注入也是我喜欢的,可以减少很多工作。

第一步

第二步

6、跨页面交互

7、黑暗模式

可以参考前期写的博客。 黑暗模式的适配

在Flutter中如何修改屏幕的方向

首先,你需要导入 services 包 :

我们可以通过 SystemChrome 这个类的 setPreferredOrientations方法来设置屏幕方向。

setPreferredOrientations()方法,参数是一个数组 ,我们可以设置多个方向(定义在 DeviceOrientation 枚举类中)。

在Flutter中主函数入口是 main()方法,如果我们想设置整个应用的屏幕方向,在runApp()方法之前设置即可。

注意 : 设置屏幕方法调用之前,需要调用一下 binding 的初始化方法(先记住即可)

landscapeLeft or landscapeRight 可以设置一个或者两个,效果试一下就知道了

设置屏幕垂直方向 :

动态改变屏幕方向 :

获取当前屏幕方向 :

参考 :

(自备梯子)

如果觉得文章有用,帮忙点个喜欢❤️ ,???????????? 赠人玫瑰,手留余香

Flutter入门(二)——实现一个简单的demo页面

首先查看入口函数:

类MyApp:

MyHomePage:

state:

build:

此demo页面涉及到两个组件:图片和icon。在这里做一个简单的介绍,更详细的学习请参考flutter官网和相关书籍

在flutter中,我们可以通过Image组件来加载并显示图片,Image的数据源可以是asset、文件、内存以及网络。

ImageProvider 是一个抽象类,主要定义了图片数据获取的接口 load() ,从不同的数据源获取图片需要实现不同的 ImageProvider ,如 AssetImage 是实现了从Asset中加载图片的ImageProvider,而 NetworkImage 实现了从网络加载图片的ImageProvider。

Image也提供了一个快捷的构造函数 Image.asset 用于从asset中加载、显示图片:

Image也提供了一个快捷的构造函数 Image.network 用于从网络加载、显示图片:

Flutter中,可以像web开发一样使用iconfont,iconfont也即"字体图标",它是将图标做成字体文件,然后通过指定不同的字符而显示不同的图片。

加号为图片组件,减一为icon组件。点击加号,数字加1;点击-1,数字减少1。

Flutter Sentry异常捕获插件接入及使用

插件入口

以下是Docker搭建Sentry平台的步骤,请保证每一步执行完成:

-启动 Sentry Server,同时添加端口映射。Sentry的端口为9000,可以使用 -p 9000:9000 参数,在启动后可以通过访问 或 进入Sentry的web管理页面:

进入Web管理页面后,按照提示配置管理员账号密码与其他信息。注意:URL填写你所访问的地址,如 。

配置成功后,按顺序进入Project-internal-Setting页面, 选择右侧Release标签

复制WEBHOOK中的curl命令,打开终端发送请求,即可在页面上看到测试的错误日志信息:

Flutter初始化

新建一个Flutter工程,android模块。

1,只有一个Activity组件,它是Dart层绘制Widget的容器。

2,Application配置FlutterApplication。

应用Application配置io.flutter.app.FlutterApplication类,App首次启动时,初始化。

调用FlutterMain.startInitialization()方法。

initConfig方法,从AndroidManfest.xml配置的applicaion节点获取meta-data数据,初始化以下默认值。

这些值都是使用中用到的name,例如,抽取apk中asset资源时,flutter_assets打包目录,打包产物data名称。

initResources方法, 初始化资源。

在Flutter打包apk的asset目录下,包括fluttter_asset目录/资源项,将资源从apk中抽取,保存在 Context.getDir("flutter", 0) 目录下。

/data/user/0/包名/app_flutter目录。

在目录中创建一个时间戳文件,根据apk版本和包信息记录的lastUpdateTime更新时间,第二次启动时,若apk未更新,不需要再次抽取。

加载so库,libflutter.so,System.loadLibrary()。

主页面继承FlutterActivity,配置启动模式singleTop。

FlutterActivity类在io.flutter.app包, (区别io.flutter.embedding.android包), 组件生命周期委托给FlutterActivityDelegate类。

组件启动,onCreate方法。

FlutterMain.ensureInitializationComplete方法,确保资源成功抽取完成,创建FlutterView视图(io.flutter.view),继承SurfaceView类,setContentView方法,设置组件主布局即FlutterView视图。

最后,根据Bundle路径,runBundle()加载运行,

调用FlutterView的runFromBundle方法,入口点在dart的main方法,

通过FlutterNativeView,调用FlutterJNI的native方法。

nativeRunBundleAndSnapshotFromLibrary方法。

任重而道远


本文题目:flutter入口,flutter
本文URL:http://scyanting.com/article/dssoiop.html