Xamarin.Forms之UserDialogs 重製版本

来源:https://www.cnblogs.com/passingwind/archive/2018/12/15/10122705.html
-Advertisement-
Play Games

在 forms 裡面,目前使用比較多的彈出組件是 Acr.UserDialogs ,但是這個組件有些小問題,比如 loading .hide 會同時把 toast 給一起關掉,android 下的 toast 希望是 安卓原生的toast 樣子,而不是 底部彈出一個橫條(其實是 android 的 ...


在 forms 裡面,目前使用比較多的彈出組件是 Acr.UserDialogs ,但是這個組件有些小問題,比如 loading .hide 會同時把 toast 給一起關掉,android 下的 toast 希望是 安卓原生的toast 樣子,而不是 底部彈出一個橫條(其實是 android 的 Snackbar),對於 ios 的toast 也希望類似android 的樣子,但是 Acr.UserDialogs 裡面 toast 是 snackbar 樣式,這並不符合產品需求情況。

 

GitHub地址: https://github.com/jxnkwlp/UserDialogs2

 

因此,我重製了一個版本, 包地址:https://www.nuget.org/packages/Passingwind.UserDialogs/

對 toast 和 snackbar 做了區分,同時 loading 的關閉不會影響 toast 。

 

介面有這些:

目前沒有非同步介面,因為覺得 Acr.UserDialogs  的 非同步介面和同步介面 對比起來不太好理解。

void Toast(string message);

void Toast(ToastConfig config);

IDisposable Snackbar(string message, Action action = null);

IDisposable Snackbar(SnackbarConfig config);

void Alert(string message);

void Alert(AlertConfig config);

IDisposable ActionSheet(ActionSheetConfig config);

IDisposable Loading(LoadingConfig config);

IProgressDialog Progress(ProgressConfig config);

void Prompt(PromptConfig config);

void Form(PromptFormConfig config);

 

使用方法:

各個介面 Config 都可以先設置預設值,比如 alert 裡面 的確定按鈕,可以全局設置為 “確定”

AlertConfig.DefaultOkText = "確定"; 

 

這樣設置後,就不用每次使用alert 的時候去設置 確定按鈕的文本。

UserDialogs.Instance.Alert(new AlertConfig("您當前無許可權操作!").AddOkButton());

 

相關依賴:

Toast:  在android 上是原生的 toast 組件,在ios 上使用 MBProgressHUD

Snackbar:  在android 上是原生的 snackbar 組件,在ios 上使用 TTGSnackbar

Progress,Loading  在 android 上使用的是 KProgressHUD (https://github.com/jxnkwlp/KProgressHUD.csharp) 這個是代碼翻譯版本,  在 ios 上是使用 MBProgressHUD

 

更多說明可以查看 readme 文件 https://github.com/jxnkwlp/UserDialogs2

 

最後,覺得好給個star 再走唄

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 在下麵兩種情況下使用靜態方法: 1.當一個方法不需要訪問對象轉態,其所需的參數讀書通過顯示參數提供的(例如 Math.pow). 2.當一個方法只需要訪問類靜態域(enployee.getNextld). 二 方法參數的使用情況 一個方法不能修改一個基本數據類型的參數(即數值型和布爾型). 一個 ...
  • 等值、大小比較 在python中, 只要兩個對象的類型相同,且它們是內置類型(字典除外),那麼這兩個對象就能進行比較 。關鍵詞:內置類型、同類型。所以,兩個對象如果類型不同,就沒法比較,比如數值類型的數值不能和字元串類型的數值或字母比較。 對於python中的等值、不等值、大小比較的規則為何如此,以 ...
  • 布爾類型 python中True表示真,False表示假,它們是布爾類型: 在python中,bool的True和False是數值1和0的字元串表示格式,實際上 bool類型是int類型的一個子類 。 因為True/False是數值1和0的另一種表示方式,它們可以直接參与數值運算。 True/Fal ...
  • 在現代Linux桌面環境上我們時常可以看到類似的消息框: 這些消息框常用在如下場景: 即時聊天軟體的新消息 鬧鐘定時提示 電池電量提示 郵件消息 長耗時操作的完成提示 在freedesktop.org的規範中這種消息框被稱為 ,中文名我們形象得稱其為“氣泡框”。通過調用D BUS服務 提供的介面即可 ...
  • 協程是個很好的東西,它能做的事情與線程相似,區別在於:協程是使用者可控的,有API給使用者來暫停和繼續執行,而線程由操作系統內核控制;另外,協程也更加輕量級。這樣,在遇到某些可能阻塞的操作時,可以使用暫停協程讓出CPU;而當條件滿足時,可以繼續執行這個協程。目前在網路伺服器領域,使用Lua協程最好的 ...
  • 給定兩個字元串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的一個字母異位詞。 你可以假設字元串只包含小寫字母 首先看到題目的意思就是說兩個字元串的字母一樣,只是位置可以不一樣 而且說明也說了,只包含小寫字母。 那我們可以通過對兩個字元串裡面的字元進行排序,如果排序後的兩個字元串是一樣的,那麼 ...
  • 周末閑暇,閑來無事,想起以前在校做的小項目,於是想打包成exe安裝包,今天和各位碼農分享一下 。 首先打開自己項目,在工具欄中找到"工具"選擇"擴展和更新" 然後選擇”聯機“在右側搜索框輸入”Visual studio Installer“點擊安裝 Visual studio Installer安裝 ...
  • 在 MasterTableView 加上 GroupsDefaultExpanded = " true " 即可 自動展開分組下麵的子項 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...