新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.打开 VS Code。
创新互联公司专注于企业营销型网站建设、网站重做改版、南沙网站定制设计、自适应品牌网站建设、H5场景定制、商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为南沙等各大城市提供网站开发制作服务。
2.打开 查看 命令面板…。
3.输入 “install”,然后选择 扩展: 安装扩展(就是点击选择第一行内容)。
4.在扩展搜索输入框中输入 “flutter”,然后在列表中选择 Flutter 并单击 安装。此过程中会自动安装必需的 Dart 插件。(选择第一行并安装)
5.退出然后重新启动 VS Code。
1.打开 查看 命令面板…。
2.输入 “doctor”,选择 Flutter: Run Flutter Doctor。
3.打开 输出 (OUTPUT) 面板查看是否有错误,确保在不同的输出选项 (Output Options) 的下拉列表中选择了 Flutter。
我们在上篇文章已经用命令行创建了一个 my_app 的flutter项目了,这里我们就可以使用 vscode 打开看看了
创建新项目 ,则是在命令面板输 flutter , 选择 Flutter: New Application Project
运行项目 ,找到 VS Code 的状态栏(窗口底部蓝色的条)
1.打开 Android Studio。
2.打开插件设置(在 v3.6.3.0 以上的系统打开 Configure Plugins)。
这里需要先改一下网络请求的设置
3.然后搜索Flutter 插件,选择并点击 安装。
4.当弹出安装 Dart 插件提示时,点击 Yes。
5.退出重新启动编译器,然后在编译器主页面就可以看到多了了 create new flutter project 可供选择,代表flutter插件安装成功,我们试着点击来创建一个新项目。
点击开始----控制版面-----打印机和传真机----点击添加打印机----在弹出的添加打印机向导对话框中点下一步----选第一项本地打印机再点下一步----下一步直到出现厂商一栏时,点击从磁盘安装.再将你的打印机驱动放入光驱中..向下就行了
右键单击要共享的打印机,然后单击“共享”。 根据计算机上是否启用了共享,在“共享”选项卡上的选项会各不相同。要了解下一步怎么做,请在“共享”选项卡上单击有相应说明的选项。 一条消息提示打印机共享必须打开 需要运行“网络安装向导”,以启用打印机共享。首先单击“共享”选项卡上的链接,然后执行系统指示以启动共享。一旦启用了共享,请再次执行该过程。 显示共享或不共享打印机的选项 在“共享”选项卡上,单击“共享这台打印机”,然后在“共享名”框中键入共享打印机的名称。 如果与硬件或操作系统不同的用户共享打印机,请单击“其他驱动程序”。单击其他计算机的环境和操作系统,然后单击“确定”,以安装其他驱动程序。 运行 Windows 其他版本(Windows 95、Windows 98 或者 Windows NT 4.0)的用户可在支持 CD 中找到驱动程序。但其中没有 Windows NT 3.1 和 Windows NT 3.5 的打印机驱动程序。 单击“确定”。如果已经安装了其他驱动程序,则单击“关闭”。 如果已遵循上述步骤,但仍无法共享打印机,那么请打开 Windows 防火墙。(要打开“Windows 防火墙”,请依次单击“开始”、“控制面板”,然后双击“Windows 防火墙”。) 然后,在“例外”选项卡上,选择“文件和打印机共享”复选框。 注意 要打开“打印机和传真”,请依次单击“开始”、“控制面板”,然后双击“打印机和传真”。 还可以在“打印机和传真”中共享打印机,方法是:单击要共享的打印机,然后单击左侧窗格“打印机任务”下面的“共享此打印机”。只有当文件夹设置为网页风格,并且当前选中打印机时,该选项才可用。详细信息,请单击“相关主题”。 默认情况下,当打印机安装在 Windows XP Professional 上时打印机没有共享,但可以选择将安装在计算机上的任何打印机共享。 当在 Active Directory 中发布打印机后,登录到 Windows 域的其他用户可以根据打印机的位置和特性(诸如每分钟打印多少页、是否支持彩色打印等)来搜索打印机。
(1)可以直接在vscode下方终端面板中,执行命令: flutter run
(2)也可以使用vscode右上角快捷键启动项目:Run Start Debugging
点击“终端”即可打开终端面板,
_慊饔疑辖堑摹安鸱直嗉鳌卑磁ァ? 3 点击“查看”,选择“切换编辑器组布局”,即可切换为垂直布局
下面这种情况下,为 InkWell 设置的 splashColor 不会生效:
需要用 Material 去除背景色,然后将颜色设置在 InkWell 外部:
在 Dialog builder 中使用 WillPopScope 禁用返回键返回:
注意:使用此方法同时也会禁用 iOS 上的手势滑动返回功能,推荐判断平台后再使用。
修改对话框中的复选框状态,最简便的方法是通过 Element 中的 markNeedsBuild 方法:
当然,更推荐的做法是通过 StatefulBuilder ,然后就可以在 Dialog 中调用 setState 方法了,不过在调用 setState 时需要判断 Dialog 是否已经关闭,否则会造成 setState() called after dispose() 的错误,可以通过添加一个标志位来解决,如下:
在 Web 中加载网络图片有时会失败,遇到这样的报错: Exception caught by image resource service... ,造成该错误的原因通常是,图片跨域了(见 跨域资源共享 )。最简单的解决办法是, 使用 HTML 渲染加载 ,而不是默认的 CanvasKit。
Flutter 中所有的 list 默认都是没有 ScrollBar 的,必须使用 ScrollBar 组件。ScrollBar 组件通过监听 ScrollView 的 ScrollNotification 来刷新位置,所以 List 的长度必须是固定的。
当使用 WebView 等高度不定的组件时会出现内容被截断的情况,通常可以使用 NestedScrollView 来解决该问题,需要在 WebView 外部嵌套 SingleChildScrollView。
虽然使用了缓存,而且也是用 builder 加载图片的,但是发现一个现象:滑动屏幕后图片短暂消失并重新加载了。图片高度很高时这种现象更加明显,其原因是超出屏幕范围一定距离的组件被重新渲染了。解决方法是在 ListView 上设置 cacheExtent 参数:
该参数的作用是改变超出屏幕高度后继续渲染的范围(以像素为单位),比如设置成 9999 后意味着超出屏幕 10000 像素以内的内容都会被保留下来。
借助 IntrinsicHeight 组件:
另外,IntrinsicHeight 还可以用于 Dialog 或者 BottomSheet 中,使得其中的元素 显示内在元素的高度 ,从而避免元素因为约束的存在而不显示或者高度太高(比如在使用了 Column 或者 Row 的时候)。
在通过 Uri 的 queryParameters 获取 query 参数时,发现有些链接会抛出下面异常:
造成该异常的原因是 Uri 默认使用 utf-8 解码超链接字符串,如果链接中包含非 utf-8 字符,就会造成上面的错误,相关 issue 见: issue #31621 。目前该 issue 处于 open 的状态,暂时的解决办法是,在所有使用到 queryParameter 的地方用 try..catch 捕捉可能抛出的异常。
Flutter 开发非常依赖各种官方或第三方的插件,而在使用这些插件时多少都会遇到一些问题,大部分问题都可以通过搜索和查找 issue 来解决。这里记录下一些我在使用部分插件时遇到的问题及其解决方法。
目前该库没有图片加载完成的回调(见 issue #545 ),不过我们可以通过在 imageBuilder 中来添加回调:
这是一个应用内更新插件,安卓 10 以上安装时需要在 manifest 中添加以下内容:
目前功能最强大的 WebView 插件,基本能满足绝大部分移动端网页加载的需求,而且可定制化程度高。
一般通过 CookieManager 修改 Cookie,拦截请求并修改请求对象的 Header 不会生效。
InAppWebViewOptions 的 userAgent 只在 iOS 上生效,而 applicationNameForUserAgent 只在 Android 上生效,所以最好的做法是分平台设置 InAppWebViewOptions ,而且需要注意,由于设置 userAgent 后会覆盖默认的 UserAgent,所以如果需要在默认的 UserAgent 上添加其它参数,iOS 上需要通过 InAppWebViewController.getDefaultUserAgent() 获取默认 UserAgent 参数,而 Android 不需要添加。
如果图片源或者请求是 http 的,为了在 Android 上正常加载请求,必须在 AndroidInAppWebViewOptions 中将 mixedContentMode 设置为 AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW 。
当我们想要设置全屏图片的时候,由于默认的 Constraint 会将图片居中显示,所以图片四周会留有空隙。为了去除这个限制,我们需要 Xcode 中打开 LaunchScreen.storyboard,然后在 View Controller 的 View 和 LaunchImage 上的 Safe Area 去掉。
具体设置方法:右侧 Inspector 面板 Show the Size inspector 解选 Layout Margins 中的 Safe Area Relative Margins,拖动图片占满全屏,然后根据 View Controller Scene 的 Warning,更新 Constraint 就可以了。
在集成某些三方库之后,在使用命令行运行 iOS 模拟器的时候可能会遇到下面这个报错:
这是因为 iOS 模拟器未来将会兼容 arm64 架构,但是目前还不支持,所以我们需要修改 Build Setting 使得能够在 x86_64 的模拟器上运行,操作步骤见 这里 。