Flutter中使TextField失去焦點(Unfocus)
點擊空白處使輸入文字框失去焦點
這在網頁中看來稀鬆平常的事情
在 Flutter 中其實蠻難做的…
使用 GestureDetector在根的地方(也就是最上層的Widget)
使用 GestureDetector 來包住原本最上層的 Widget
123456789GestureDetector( // 使空白處可以點擊 behavior: HitTestBehavior.translucent, // 點擊後失去當前的Focus(request一個空的Focus給它) onTap: () { FocusScope.of(context).requestFocus(FocusNode()); }, child: YourWidget(),)
在Caddy中使用反向代理運行Go服務
今天有一監聽 8080 Port 的 Go 服務如下
123456789101112131415package mainimport ( "fmt" "net/http")func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])}func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil)}
該怎麼使用 Caddy 把這個服務架上去呢?
使用 reverse_proxy這邊使用反向代理(Reverse Proxy)的作法
編輯 Caddyfile
123your.domain.com { reverse_proxy 0.0.0.0:8080}
接著搭配 Ca ...
使用Caddyfile配置Caddy
新增 Caddyfile在安裝 caddy 的目錄下新增一個檔案 (在哪裡都可以,待會記得路徑就好,這裡是 /usr/local/caddy)
並命名為 Caddyfile (不用副檔名!)
修改 CaddyFile 配置編輯 Caddyfile
123localhost { respond "Hello, world!"}
搭配 CaddyFile 運行 Caddy搭配剛剛存放 Caddyfile 的路徑啟動 Caddy
1caddy start --config /usr/local/caddy/Caddyfile --watch
--watch 參數代表當 Caddyfile 一有變動時,配置可以立即生效
大功告成!接著打開或是 ping localhost
就可以看到 Hello, world! 囉!
安裝Caddy
Caddy 是一個近幾年迅速竄紅的 Web Server
主要是以 Go 語言開發
相較於主流的 Nginx
Caddy 原生支援 HTTPS
會自己幫你去申請 Let’s Encrypt 的憑證
而且設定檔相對親民化許多!
-
對我這種懶人+伺服器新手根本超友善的啦🧡
下載 Caddy由於 Caddy 是用 Go 開發的
所以到官網下載二進位檔就能執行囉~
Windows創建資料夾 C:\Caddy\bin (其實改什麼路徑都沒差,待會記得就好)
接著到Caddy官網的下載頁面選擇相對應的平台下載
下載結束後應該會是一個 .exe 檔
將其檔名改成 caddy.exe 後
複製到剛剛創建的資料夾(這裡是 C:\Caddy\bin)
Linux先用 mkdir 指令創建資料夾並 cd 到該目錄
再用 wget 指令下載
接著再用 chmod 為下載好的二進位檔賦予執行權限
123mkdir /usr/local/caddy && cd /usr/local/caddywget -N --no-check-certificate -O "caddy" ...
在VSCode中設定可以在多台電腦編譯C++的環境 - 以MinGW為例
我的C++專案資料夾是放在Dropbox上面
每次要換台電腦修改東西就
光改config就是一大工程了
好懶。
這篇是寫給我這種懶人的
-
欸不是啦!這個功能在異地pull C++專案也很實用!
找到MinGW資料夾並複製路徑找到你安裝MinGW的地方!
就是底下有包含\bin阿、\include的資料夾
長的類似像這樣
我手上的兩個環境分別在:
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64
C:\MinGW
可以參考一下
找到路徑之後記得複製起來!
新增環境變數到編輯環境變數的視窗
點選新增
然後設定新的環境變數:
key: MINGW_GCC_PATH
value: <剛剛複製的路徑>
設定完之後像這樣
修改 c_cpp_properties.json在專案目錄下的.vscode資料夾內可以找到這個檔案
相信自己架環境的開發者對這個檔案應該不陌生
並將原本的編譯器環境修改為剛剛設定的環境變數
類似像這樣:
1234567891011121314151617181920 ...
VSCode擴充套件同步
剛結束完一整年度的課
該來更新文章啦~
-
最近剛換了個新環境
以往都是手動安裝Extensions的我,最近終於意識到這是個蠢行為
於是決定來研究一下在各個環境中如何同步,使各環境的Extensions保持一致
安裝Setting Sync並登入GitHub今天我們的主角是Setting Sync!
先到VSCode中,Extensions的介面搜尋Setting Sync並安裝
接著應該會看到以下畫面
(如果沒有的話,使用下一步驟中的 Ctrl + Shift + P 並搜尋 Sync: Update 然後Enter,應該就會跳出來了)
點LOGIN WITH GITHUB
然後會跳出瀏覽器畫面,這時順著指示登入你的GitHub帳號就好
登入完Github帳號後畫面如下
這時只要回到VSCode的畫面就好了哦!畫面如下
因為我們這時還沒有上傳任何的Gist,所以直接Skip就好
上傳你的設定檔接下來就是上傳的部分啦~
按下 Ctrl + Shift + P 呼叫出命令列
並搜尋 Sync: Update,看到以下選項直接Enter
確認你的設定檔並記下Gist ID先到Gi ...
Flutter中滑動以刪除列表物件
最近開學有點忙阿…
只能慢慢更新一點小東西QAQ
用Dismissible包住List Item這裡使用Flutter原生的Dismissible
加上key每個被Dismissible包住的物件都要有一個獨特的Key,
以確保Flutter在更新畫面時的比較機制順利進行(之後應該會另外發篇文講)
1234Dismissible( key: Key("YourKey"), child: YourListItem(),);
加上onDismissed加上當被滑動時需要做的動作
1234567Dismissible( key: Key("YourKey"), onDismissed: (direction) { // Do something... }, child: YourListItem(),);
在Flutter中使用字體
找到你要的字體到Google Fonts 官網尋找你要的字體
下載該字體的安裝包並解壓縮
觀察檔名這裡拿來示範的是Quicksand這個字體
解壓縮之後
字體檔的副檔名應該是.ttf, .otf或.ttc
而檔名的命名規則是”字體家族名稱-粗細“
ex. Quicksand-Bold.ttf
新建資料夾並移動資料在Flutter專案的根目錄中
新建名為fonts的資料夾
並把剛剛解壓縮裡面的字體檔放進fonts內
修改pubspec.yaml把剛剛放進來的所有字體檔都加到pubspec.yaml中flutter底下的的fonts
ex.
12345678910111213flutter: # ... fonts: - family: Quicksand #這裡填字體家族名稱 fonts: - asset: fonts/Quicksand-Bold.ttf - asset: fonts/Quicksand-Light.ttf - asset: fonts/Quicksand-Medium.ttf - asset: fonts/Quicksand-R ...
在Flutter中使用插件(Package)
最近來補點比較基本且常用的東西好了XD
找到你要的插件我這裡使用的範例是provider
修改pubspec.yaml在pubspec.yaml加入你剛剛找到的插件名稱
這裡有幾種寫法
無版本號12dependencies: provider:
我自己偏好這個方法,不過不推薦
如果不加入版本號的話
代表get package時永遠是拉最新版
但無從查看插件的版本(我看有人說好像在更新時會顯示版本,但我測試是失敗的QQ)
^ + 版本號12dependencies: provider: ^3.1.0
最常使用的方法
在get package時任何3.1.x, x>=0皆適用
但3.2.x則不適用
‘版本號’12dependencies: provider: '3.1.0'
不推薦,這裡代表只有3.1.0這個版本適用
執行指令執行這段
1flutter pub get
這裡會根據pubspec.yaml中dependencies寫的插件來更新
新的會下載下來
舊的如果版本適用則會更新
在VS Code中在VS Code中存檔就會自動執行
無須再輸入 ...
Just Scan Releases
最新版本
直接下載最新版本 v1.0.0 (2019/09/06 釋出)
從Play商店安裝 (因為須審核,所以版本更新上可能較慢)
功能簡介
掃條碼 - 即時的條碼掃描
上傳檔案 - 分析檔案中的條碼或文字(文字僅支援拉丁語系)
生成條碼 - 以您的文字內容來生成一個新的QR Code
檢視結果 - 可以複製結果的文字、也可以在瀏覽器中開啟,並支援分享功能
檢視歷史 - 可以查看您所有的歷史結果
設定 - 目前可以切換中、英文版本
螢幕截圖
歷史版本v1.0.0 (2019/09/06 釋出)
新稱 - 掃條碼
新稱 - 上傳檔案
新稱 - 生成條碼
新稱 - 檢視結果
新稱 - 檢視歷史
新稱 - 設定
前往下載v1.0.0