欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter手冊(cè)下載,flutter文件下載

小程序開(kāi)發(fā)和App開(kāi)發(fā)有什么區(qū)別,哪個(gè)好學(xué)一些?

小程序有很多種,微信小程序、釘釘小程序 等等。而App也分分了好幾個(gè)陣營(yíng)。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供鐵鋒網(wǎng)站建設(shè)、鐵鋒做網(wǎng)站、鐵鋒網(wǎng)站設(shè)計(jì)、鐵鋒網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、鐵鋒企業(yè)網(wǎng)站模板建站服務(wù),十年鐵鋒做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

我們現(xiàn)在說(shuō)的小程序一般都是基于H5的,或者說(shuō)語(yǔ)法非常的類似,配合js和css樣式達(dá)到相應(yīng)的顯示效果。開(kāi)發(fā)時(shí)涉及的技術(shù)棧主要是h5、css、js 相關(guān)的。

App 來(lái)說(shuō)也分原生App 和 H5 App 還有就是混合開(kāi)發(fā)的。原生App來(lái)說(shuō)體驗(yàn)好,Android app主要的開(kāi)發(fā)語(yǔ)言是java和Kotlin,iOS 的app開(kāi)發(fā)語(yǔ)言是Objective-C 和 swift。原生App需要了解平臺(tái)語(yǔ)言和相關(guān)的UI框架。

混合App 也有很多框架類似ionic 等等,這部分需要了解相關(guān)的js,例如Angularjs reactjs vue.js 等等,體系也很多。

谷歌的flutter 號(hào)稱跨平臺(tái)開(kāi)發(fā),使用的是dart語(yǔ)言。這也是近幾年推出的。

總的來(lái)說(shuō)難易程度上小程序應(yīng)該會(huì)更容易一些吧。當(dāng)然這也是因人而異。

記錄flutter-folio開(kāi)源項(xiàng)目啟動(dòng)報(bào)錯(cuò)Method not found

下載了一個(gè)開(kāi)源項(xiàng)目flutter-folio

編譯的時(shí)候一直在說(shuō)方法找不到。

Error: Method not found:

是cloud_firebase_web跳轉(zhuǎn)找firebase_core的某個(gè)方法的時(shí)候說(shuō)找不到。

按照網(wǎng)上說(shuō)的在firebase包定義前面添加關(guān)鍵字dependency_overrides:也不行。

開(kāi)始的時(shí)候嘗試著自己修改方法名讓它能夠找到,一直搞不定??偢杏X(jué)這個(gè)是系統(tǒng)自帶的類庫(kù),不應(yīng)該發(fā)生這么低級(jí)的錯(cuò)誤了。

最后仔細(xì)看了一下他們的版本不對(duì)應(yīng),有可能是版本問(wèn)題,cloud_firebase_web是1.0.7,使用工具跳轉(zhuǎn)到firebase_core的時(shí)候是1.17.0

然后就嘗試著手動(dòng)修改firebase_core關(guān)聯(lián)的包,不要讓它自動(dòng)匹配版本,而是強(qiáng)制使用某一個(gè)固定版本。

比如之前是這么寫的:firebase_core: ^1.0.1,^含義是找到大于1.0.1小于2.0.0的最高版本

修改成:firebase_core: 1.4.0

具體有哪些版本可以去這個(gè)網(wǎng)站上找:

然后就可以了。

事后分析原因是:firebase_core雖然沒(méi)有修改大版本號(hào),當(dāng)前依然是1.17.0。但是里面做了不兼容的改動(dòng),刪除了某些方法,導(dǎo)致了找不到。而cloud_firebase_web當(dāng)前的最高版本已經(jīng)是3點(diǎn)幾了,因此對(duì)應(yīng)firebase_core版本的cloud_firebase_web在2或者3才兼容。

所以包管理真的是一件比較麻煩的事情。

Flutter入門-Dart面向?qū)ο笤?/h2>

Dart作為高級(jí)語(yǔ)言,支持面向?qū)ο蟮暮芏嗵匦?,并且支持基于mixin的繼承方式,基于mixin的繼承方式是指:一個(gè)類可以繼承自多個(gè)父類,相當(dāng)于其他語(yǔ)言里的多繼承。所有的類都有同一個(gè)基類Object,這和特性類似于Java語(yǔ)言,Java所有的類也都是繼承自O(shè)bject,也就是說(shuō)一切皆對(duì)象。

Dart 是一門面向?qū)ο蟮恼Z(yǔ)言, 全部的類都是繼承自 Object , 除了支持傳統(tǒng)的 繼承、封裝、多態(tài) , 還有基于組合(Mixin-based)的繼承特性

類型推導(dǎo)(var/final/const)

var

final和const的區(qū)別

3.非零即真( )

4.字符串

5.集合

Dart中變量初始值為null,即使是int類型也可以是null(java中int默認(rèn)是0, boolean默認(rèn)是false); Dart支持自識(shí)別,可以是用var定義變量,也可以直接指定具體類型; final或者const都可修飾不可變的變量,final變量只能賦值一次,const是編譯時(shí)常量。

int和double是num子類,沒(méi)有float類型; 支持字符串模板,用${expression}的方式來(lái)實(shí)現(xiàn)字符串效果,類似如字符串拼接; String可以使用單引號(hào)或者雙引號(hào); Dart沒(méi)有數(shù)組,只有列表; 其中List,Set,Map不是抽象接口,是具體實(shí)現(xiàn)類,可直接使用; Map的key沒(méi)有指定類型,key類型不一致不會(huì)報(bào)錯(cuò);key不能相同,但是value可以相同,value可以為null。 var name = 'Tom';

方法也是對(duì)象,方法可賦值給一個(gè)變量; 如果方法的參數(shù)是解構(gòu)出來(lái)的可以通過(guò) @required 注解標(biāo)注為必填 const Scrollbar({Key key, @required Widget child}); 支持可選參數(shù),可選命名參數(shù)用{}包圍,可選位置參數(shù)寫在最后并且使用[]包圍 String say(String from, String msg, [String device]); 支持默認(rèn)參數(shù) void enableFlags({bool bold = false, bool hidden = false}) {…}; 以_開(kāi)頭的方法都是私有的。 void main() {

支持閉包,閉包能夠訪問(wèn)外部方法內(nèi)部的局部變量

1.空替換?? expr1 ?? expr2,如果expr1是non-null,返回其值。否則執(zhí)行expr2并返回其結(jié)果; 2.條件成員訪問(wèn)?.P?.y = 4; 如果p是non-null,則設(shè)置y的值等于4; 3.類型判定操作符(as,is,is!); 4.級(jí)聯(lián)操作,可以在同一個(gè)對(duì)象上連續(xù)調(diào)用多個(gè)函數(shù)以及訪問(wèn)成員變量;

和java不同的是,Dart可以拋出任意類型的對(duì)象; 程序不會(huì)強(qiáng)制要求開(kāi)發(fā)中處理異常,但若發(fā)生異常,程序會(huì)中斷; 其中異常主要分為Error和Exception兩種類型。

創(chuàng)建對(duì)象可以不使用new關(guān)鍵字; Dart中沒(méi)有public,private,protected這些關(guān)鍵字; 沒(méi)有interfaces關(guān)鍵字,每一個(gè)類都是一個(gè)接口。我們可以用抽象類來(lái)類比java中的接口; Dart把多重繼承的類叫做Mixins。

支持語(yǔ)法糖 Point(this.x, this.y); 每個(gè)實(shí)例變量都會(huì)自動(dòng)生成一個(gè)getter方法,Non-final變量還會(huì)自動(dòng)生成一個(gè)setter; 命名構(gòu)造函數(shù),使用命名構(gòu)造函數(shù)可以為一個(gè)類實(shí)現(xiàn)多個(gè)構(gòu)造函數(shù),也能更加清晰的表明你的意圖;

斷言是如果條件表達(dá)式不滿足則停止代碼執(zhí)行; 斷言只在檢查模式下運(yùn)行有效,如果在生產(chǎn)模式下運(yùn)行則不會(huì)執(zhí)行。

Dart 以兩種模式運(yùn)行: Dart 1.x 有生產(chǎn)模式和檢查模式兩種模式, Dart 2.x 中移除了檢查模式。

注:建議在開(kāi)發(fā)/測(cè)試模式中使用 檢查模式 運(yùn)行 Dart VM ,因?yàn)樗鼤?huì)添加警告和錯(cuò)誤以幫助開(kāi)發(fā)和調(diào)試過(guò)程;選中的模式會(huì)強(qiáng)制執(zhí)行各種檢查,例如類型檢查等。

dart標(biāo)識(shí)符可以包括字符和數(shù)字,但不能以 數(shù)字開(kāi)頭 。

Dart 是一種面向?qū)ο蟮木幊陶Z(yǔ)言。

代碼說(shuō)明:定義了一個(gè)類 TestClass ,這個(gè)類擁有一個(gè)方法 disp() ,方法可以實(shí)現(xiàn)在終端打印字符串 Hello Dart! ,使用 new 關(guān)鍵字創(chuàng)建類的對(duì)象,該對(duì)象調(diào)用方法 disp() 。

關(guān)于dart的學(xué)習(xí)還有很多;我列出如下: Flutter高級(jí)工程師進(jìn)階學(xué)習(xí)資料;需要可以私信我。發(fā)送“核心筆記”或“手冊(cè)”,即可領(lǐng)取資料!

飛鳥集txt全集下載

鏈接:

提取碼:?p2v7

《飛鳥集》是印度詩(shī)人泰戈?duì)杽?chuàng)作的詩(shī)集,它包括325首清麗的無(wú)標(biāo)題小詩(shī),首次出版于1916年。這些詩(shī)的基本題材多為極其常見(jiàn)事物,不外乎小草、落葉、飛鳥、星辰、河流等等。

Flutter下載jar速度慢

文章轉(zhuǎn)自:

用Android Stduio創(chuàng)建Flutter項(xiàng)目的時(shí)候,會(huì)出現(xiàn)各種問(wèn)題,踩了一個(gè)又一個(gè),最后編譯的時(shí)候可能會(huì)出現(xiàn)一直顯示Running Gradle task 'assembleDebug'然后就不動(dòng)了,或者會(huì)顯示Could not resolve io.flutter等問(wèn)題,歸根結(jié)底是網(wǎng)絡(luò)無(wú)法訪問(wèn)到Google服務(wù)引起的,兩種解決方案:

1.具有比較良好的訪問(wèn)谷歌的網(wǎng)絡(luò)環(huán)境

2.修改鏡像源為國(guó)內(nèi)的:

找到Flutte SDK目錄下的Flutter打包配置文件flutter.gradle

路徑為flutter\packages\flutter_tools\gradle\flutter.gradle

第一處配置:

buildscript {

repositories {

//注釋

// google()

// jcenter()

//添加

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

dependencies {

classpath 'com.android.tools.build:gradle:3.5.0'

}

}

第二處配置:

class FlutterPlugin implements PluginProject {

//注釋

// private static final String MAVEN_REPO = " ";

//添加這行

private static final String MAVEN_REPO = " ";

第三處配置:

void addFlutterDependencies(buildType) {

String flutterBuildMode = buildModeFor(buildType)

if (!supportsBuildMode(flutterBuildMode)) {

return

}

String repository = useLocalEngine()

? project.property('local-engine-repo')

: MAVEN_REPO

最后一處,項(xiàng)目中的配置,修改Flutter項(xiàng)目下的android下的build.gradle:

buildscript {

ext.kotlin_version = '1.3.50'

repositories {

// google()

// jcenter()

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

}

allprojects {

repositories {

// google()

// jcenter()

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

}

修改完成后,再build,就可以正常構(gòu)建了?。?!

Flutter真香,我用它寫了個(gè)桌面版JSON解析工具

Flutter支持穩(wěn)定的桌面設(shè)備開(kāi)發(fā)已經(jīng)一段時(shí)間了,不得不說(shuō),F(xiàn)lutter多平臺(tái)支持的特性真的很香。我本人并沒(méi)有任何桌面開(kāi)發(fā)的經(jīng)驗(yàn),但仍然使用Flutter開(kāi)發(fā)出了一個(gè)桌面版小程序,功能很簡(jiǎn)單,就是對(duì)輸入的json做格式化處理和轉(zhuǎn)模型。

話不多說(shuō),先來(lái)看看實(shí)際效果。 項(xiàng)目源碼地址

開(kāi)發(fā)環(huán)境如下:

Flutter : 2.8.1

Dart : 2.15.1

IDE : VSCode

JSON作為我們?nèi)粘i_(kāi)發(fā)工作中經(jīng)常要打交道的一種數(shù)據(jù)格式,它共有6種數(shù)據(jù)類型: null , num , string , object , array , bool 。我們勢(shì)必對(duì)它又愛(ài)又恨。愛(ài)他因?yàn)樗鳛閿?shù)據(jù)處理的一種格式確實(shí)非常方便簡(jiǎn)潔。但是在我們做Flutter開(kāi)發(fā)中,又需要接觸到j(luò)son解析時(shí),就會(huì)感覺(jué)非常棘手,因?yàn)閒lutter沒(méi)有反射,導(dǎo)致json轉(zhuǎn)模型這塊需要手寫那繁雜的映射關(guān)系。就像下面這樣子。

數(shù)據(jù)量少還能接受,一旦量大,那么光手寫這個(gè)解析方法都能讓你懷疑人生。更何況手寫還有出錯(cuò)的可能。好在官方有個(gè)工具**json_serializable**可以自動(dòng)生成這塊轉(zhuǎn)換代碼,也解決了flutter界json轉(zhuǎn)模型的空缺。當(dāng)然,業(yè)界也有專門解析json的網(wǎng)站,可以自動(dòng)生成dart代碼,使用者在生成后復(fù)制進(jìn)項(xiàng)目中即可,也是非常方便的。

本項(xiàng)目以json解析為切入點(diǎn),和大家一起來(lái)看下flutter是如何開(kāi)發(fā)桌面應(yīng)用的。

要讓我們的flutter項(xiàng)目支持桌面設(shè)備。我們首先需要修改下flutter的設(shè)置。如下,讓我們的項(xiàng)目支持 windows 和 macos 系統(tǒng)。

接下來(lái)使用 flutter create 命令創(chuàng)建我們的模版工程。

創(chuàng)建完項(xiàng)目后,我們就可以 run 起來(lái)了。

先來(lái)看下整體界面,界面四塊,分別為功能模塊、文件選擇模塊、輸入模塊、輸出模塊。

我們?cè)谛陆ㄒ粋€(gè)桌面應(yīng)用時(shí),默認(rèn)的模版又一個(gè)Appbar,此時(shí)應(yīng)用可以用鼠標(biāo)拖拽移動(dòng),放大縮小,還可以縮到很小。但是,我們一旦去掉這個(gè)導(dǎo)航欄,那么窗口就不能用鼠標(biāo)拖動(dòng)了,并且我們往往不希望用戶將我們的窗口縮放的很小,這會(huì)導(dǎo)致頁(yè)面異常,一些重要信息都展示不全。因此這里需要借助第三方組件 bitsdojo_window 。通過(guò) bitsdojo_window ,我們可以實(shí)現(xiàn)窗口的定制化,拖動(dòng),最小尺寸,最大尺寸,窗口邊框,窗口頂部放大、縮小、關(guān)閉的按鈕等。

通過(guò) InkWell 組件,可以捕捉到手勢(shì)、鼠標(biāo)、觸控筆的移動(dòng)和停留位置

這個(gè)功能是鼠標(biāo)移動(dòng)后的UI交互界面。要在窗口上顯示一個(gè)提示框,可以使用 Overlay 。需要注意的是,由于在 Overlay 上的 text 的根結(jié)點(diǎn)不是 Material 風(fēng)格的組件,因此會(huì)出現(xiàn)黃色的下劃線。因此一定要用 Material 包一下 text 。并且你必須給創(chuàng)建的 OverlayEntry 一個(gè)位置,否則它將全屏顯示。

讀取說(shuō)表拖拽的文件一開(kāi)始想嘗試使用 InkWell 組件,但是這個(gè)組件無(wú)法識(shí)別拖拽中的鼠標(biāo),并且也無(wú)法從中拿到文件信息。因此放棄。后來(lái)從文章《Flutter-2天寫個(gè)桌面端APP》中發(fā)現(xiàn)一個(gè)可讀取拖拽文件的組件 desktop_drop ,能滿足要求。

使用開(kāi)源組件 file_picker ,選完圖片后的操作和拖拽選擇圖片后的操作一致。

Textfield 如果要顯示富文本,那么需要自定義 TextEditingController 。并重寫 buildTextSpan 方法。

在做導(dǎo)出功能時(shí)遇到下列報(bào)錯(cuò),保存提示為沒(méi)有權(quán)限訪問(wèn)對(duì)應(yīng)目錄下的文件。

通過(guò)Apple的開(kāi)發(fā)文檔找到有關(guān)權(quán)限問(wèn)題的說(shuō)明。其中有個(gè)授權(quán)私鑰的key為 com.apple.security.files.downloads.read-write ,表示 對(duì)用戶的下載文件夾的讀/寫訪問(wèn)權(quán)限 。那么,使用Xcode打開(kāi)Flutter項(xiàng)目中的mac應(yīng)用,修改工程目錄下的 DebugProfile.entitlements 文件,向 entitlements 文件中添加 com.apple.security.files.downloads.read-write ,并將值設(shè)置為YES,保存后重啟Flutter項(xiàng)目。發(fā)現(xiàn)已經(jīng)可以向下載目錄中讀寫文件了。

當(dāng)然,這是正常操作。還有個(gè)騷操作就是關(guān)閉系統(tǒng)的沙盒機(jī)制。將 entitlements 文件的 App Sandbox 設(shè)置為NO。這樣我們就可以訪問(wèn)任意路徑了。當(dāng)然關(guān)閉應(yīng)用的沙盒也就相當(dāng)于關(guān)閉了應(yīng)用的防護(hù)機(jī)制,因此這個(gè)選項(xiàng)慎用。

原文地址:

分享名稱:flutter手冊(cè)下載,flutter文件下載
文章網(wǎng)址:http://chinadenli.net/article20/dsdgsjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、企業(yè)網(wǎng)站制作、微信公眾號(hào)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)