騰訊開源超實用的UI輪子庫,我是輪子搬運工 [復制鏈接]

2019-9-2 10:17
Growup 閱讀:796 評論:1 贊:3
Tag:  


QMUI_Android

功能特性

全局 UI 配置

只需要修改一份配置表就可以調整 App 的全局樣式,包括組件顏色、導航欄、對話框、列表等。一處修改,全局生效。

豐富的 UI 控件

提供豐富常用的 UI 控件,例如 BottomSheet、Tab、圓角 ImageView、下拉刷新等,使用方便靈活,并且支持自定義控件的樣式。

高效的工具方法

提供高效的工具方法,包括設備信息、屏幕信息、鍵盤管理、狀態欄管理等,可以解決各種常見場景并大幅度提升開發效率。

功能列表

  • QMUIAnimationListView
  • 使 ListView 支持添加/刪除 Item 的動畫,支持自定義動畫效果。
  • QMUIBottomSheet
  • 在 Dialog 的基礎上重新定制了 show() 和 hide() 時的動畫效果, 使 Dialog 在界面底部升起和降下。提供了以下兩個面板樣式:
  1. 列表樣式:使用 QMUIBottomSheet.BottomListSheetBuilder 生成。
  2. 宮格類型:使用 QMUIBottomSheet.BottomGridSheetBuilder 生成。
  • QMUICommonListItemView
  • 用作通用列表 QMUIGroupListView 里的 Item,也可單獨使用。支持以下樣式:
  1. 展示一行文字。
  2. 在右側或下方增加一行說明文字。
  3. 在 item 右側顯示一個開關或箭頭或自定義的View
  • QMUIDialog
  • 提供了一系列常用的對話框,解決了使用系統默認對話框時在不同 Android 版本上的表現不一致的問題。使用不同的 Builder 來構建不同類型的對話框,這些 Builder 都擁有設置 title 和添加底部按鈕的功能,不同的 Builder 特有的作用如下:
  1. MessageDialogBuilder: 消息類型的對話框 Builder。通過它可以生成一個帶標題、文本消息、按鈕的對話框。
  2. ConfirmMessageDialogBuilder: 帶 Checkbox 的消息確認框 Builder。
  3. EditTextDialogBuilder: 帶輸入框的對話框 Builder。
  4. MenuDialogBuilder: 菜單對話框 Builder。
  5. CheckableDialogBuilder: 單選類型的對話框 Builder。
  6. MultiCheckableDialogBuilder: 多選類型的對話框 Builder。

7.CustomDialogBuilder: 自定義對話框內容區域的 Builder。

  1. AutoResizeDialogBuilder: 隨鍵盤升降自動調整 Dialog 高度的 Builder
  • QMUIEmptyView
  • 通用的空界面控件,支持顯示 loading、主標題和副標題、圖片。
  • QMUIFloatLayout
  • 類似 CSS 里 float: left 的浮動布局,從左到右排列子 View 并自動換行。支持以下特性:
  1. 控制子 View 之間的垂直/水平間距。
  2. 控制子 View 的水平對齊方向(左對齊/居中/右對齊)。
  3. 限制子 View 的個數或行數。
  • QMUIFontFitTextView
  • 使 TextView 在寬度固定的情況下,文字多到一行放不下時能縮小文字大小來自適應。
  • QMUIGroupListView
  • 通用的列表,常用于 App 的設置界面,注意其父類不是 ListView 而是 LinearLayout,所以一般要配合 ScrollView 使用。提供了 Section 的概念,用來將列表分塊。 配合 QMUIGroupListView.Section, QMUICommonListItemView 和 QMUIGroupListSectionHeaderFooterView 使用。
  • QMUIGroupListSectionHeaderFooterView
  • 用作通用列表 QMUIGroupListView 里每個 Section 的頭部或尾部,也可單獨使用。
  • QMUIItemViewsAdapter
  • 一個帶 cache 功能的“列表型數據-View”的適配器,適用于自定義 View 需要顯示重復單元 ListView 的情景,cache 功能主要是保證在需要多次刷新數據或布局的情況下(ListView 或 RecycleView 的 itemView)復用已存在的 View。QMUI 用于 QMUITabSegment 中 Tab 與數據的適配。
  • QMUIKeyboardHelper
  • 提供更加便捷的方式針對給定的 EditText 顯示/隱藏軟鍵盤,并且提供了工具方法判斷鍵盤是否當前可見。
  • QMUILinkTextView
  • 使 TextView 能自動識別 URL、電話、郵箱地址,相比 TextView 有以下特點:
  1. 可以設置鏈接的樣式。
  2. 可以設置鏈接的點擊事件。
  • QMUILoadingView
  • 用于顯示 Loading 的 View,支持顏色和大小的設置。
  • QMUIObservableScrollView
  • 可以監聽滾動事件的 ScrollView,并能在滾動回調中獲取每次滾動前后的偏移量。
  • QMUIPopup
  • 提供一個浮層,支持自定義浮層的內容,支持在指定 View 的任一方向旁邊展示該浮層,支持自定義浮層出現/消失的動畫。
  • QMUIListPopup
  • 繼承自 QMUIPopup,在 QMUIPopup 的基礎上,支持顯示一個列表。
  • QMUIProgressBar
  • 一個進度條控件,通過顏色變化顯示進度,支持環形和矩形兩種形式,主要特性如下:
  1. 支持在進度條中以文字形式顯示進度,支持修改文字的顏色和大小。
  2. 可以通過 xml 屬性修改進度背景色,當前進度顏色,進度條尺寸。
  3. 支持限制進度的最大值。
  • QMUIPullRefreshLayout
  • 下拉刷新控件。支持自定義 RefreshView(表示正在刷新的 View),觸發刷新的位置等特性。
  • QMUIQQFaceView
  1. 支持顯示表情的偽 TextView(繼續自定義 View,而不是真正的 TextView), 實現了 TextView 的 maxLine、ellipsize、textSize、textColor 等基本功能。
  2. 支持與 QMUITouchableSpan 配合使用實現內容可點擊。
  • QMUIQQFaceCompiler
  • QMUIQQFaceView 的內容解析器,將文本內容解析成 QMUIQQFaceView 想要的數據格式。
  • IQMUIQQFaceManager
  • QMUIQQFaceView 資源管理接口,使用 QMUIQQFaceView 必須實現這個接口以提供表情資源。
  • QMUIRadiusImageView
  • 提供為圖片添加圓角、邊框、剪裁到圓形或其他形狀等功能。
  • QMUIRoundButton
  • 對 Button 提供圓角功能,支持以下特性:
  1. 指定圓角的大小。
  2. 分別指定不同方向的圓角大小。
  3. 指定圓角的大小為高度的一半,并跟隨高度變化自適應圓角大小。
  4. 支持分別指定背景色和邊框色,指定顏色時支持使用 color 或 ColorStateList。
  • QMUIRoundButtonDrawable
  • 使用該 Drawable 可以方便地生成圓角矩形/圓形 Drawable,提供設置背景色、描邊大小和顏色、圓角自適應 View 高度等特性。
  • QMUISpanTouchFixTextView
  • 相比 TextView,修正了兩個常見問題:
  1. 修正了 TextView 與 ClickableSpan 一起使用時,點擊 ClickableSpan 也會觸發 TextView 的事件的問題。
  2. 修正了 TextView 默認情況下如果添加了 ClickableSpan 之后就無法把點擊事件傳遞給 TextView 的 Parent 的問題。
  • QMUITabSegment
  • 用于橫向多個 Tab 的布局,包含多個特性:
  1. 可以用 xml 或 QMUITabSegment 提供的 set 方法統一配置文字顏色、icon 位置、是否要下劃線等。
  2. 每個 Tab 都可以非常靈活的配置,內容上支持文字和 icon 的顯示,icon 支持選中態,支持內容的排版對齊方向設置,支持顯示紅點,支持插入自定義的 View,支持監聽雙擊事件等。
  3. 可以通過 setupWithViewPager(ViewPager) 方法與 ViewPager 綁定。
  • QMUITipDialog
  • 提供一個浮層展示在屏幕中間,提供了以下兩種樣式:
  1. 使用 QMUITipDialog.Builder 生成,提供了一個圖標和一行文字的樣式, 其中圖標有 Loading、成功、失敗等類型可選。
  2. 使用 QMUITipDialog.CustomBuilder 生成,支持傳入自定義的 layoutResId。
  • QMUITopBar
  • 通用的頂部 Bar。提供了以下功能:

更多可參考 wiki 文檔

  1. 在左側/右側添加圖片按鈕/文字按鈕/自定義View。
  2. 設置標題/副標題,且支持設置標題/副標題的水平對齊方式。
  • QMUITopBarLayout
  • 對 QMUITopBar 的包裹類,并代理了 QMUITopBar 的方法。配合 QMUIWindowInsetLayout 使用,可使 QMUITopBar 在支持沉浸式狀態欄的界面中頂部延伸到狀態欄。
  • QMUIVerticalTextView
  • 在 TextView 的基礎上支持文字豎排。
  • QMUITouchableSpan

-繼承自 ClickableSpan,支持 normal 態和 press 態時有不同的背景顏色以及字體顏色。建議配合 QMUISpanTouchFixTextView 或其子類使用,便于事件傳遞的協調。

  • QMUIWindowInsetLayout
  • 配合沉浸式狀態欄使用,用于協調子 View 的 fitSystemWindows。
  • QMUIWrapContentListView
  • 支持高度值為 wrap_content 的 ListView,解決原生 ListView 在設置高度為 wrap_content 時高度計算錯誤的 bug。
  • QMUIBlockSpaceSpan
  • 通過在段落之間設置該 span,實現段間距的效果。
  • QMUICustomTypefaceSpan
  • 通過在段落之間設置該 span,實現段間距的效果。
  • QMUICustomTypefaceSpan
  • 支持以 Typeface 的方式設置 span 的字體,實現自定義字體的效果。
  • QMUIAlignMiddleImageSpan
  • 繼承自 ImageSpan,在此基礎上實現讓 span 垂直居中的效果。
  • QMUIMarginImageSpan
  • 繼承自 QMUIMarginImageSpan,在此基礎上支持設置圖片的左右間距。
  • QMUITextSizeSpan
  • 支持調整字體大小的 span。AbsoluteSizeSpan 可以調整字體大小,但在中英文混排下由于decent的不同,無法根據具體需求進行底部對齊或者頂部對齊。而 QMUITextSizeSpan 則可以多傳一個參數,讓你可以根據具體情況來決定偏移值。
  • QMUIStickySectionLayout
  • 支持二級結構的列表的折疊與展開;支持滾動時懸浮當前 section header; 支持在section list 或 section item list 前后添加自定義 View。 更多可參考 wiki 文檔。

Helper Classes

  • QMUIColorHelper
  • 顏色處理工具類,按照功能類型來劃分,總共包含以下幾個特性:
  1. 為一個顏色設置透明度。
  2. 根據指定比例,在兩個顏色值之間計算出一個顏色值。
  3. 將顏色值轉換為字符串。
  • QMUIDeviceHelper
  • 獲取設備信息的工具類,按照功能類型來劃分,總共包含以下幾個特性:
  1. 判斷設備為手機/平板。
  2. 判斷設備是否為魅族手機。
  3. 判斷當前系統是否為 Flyme 系統。
  4. 判斷當前系統是否為 MIUI 系統。
  5. 判斷當前是否擁有懸浮窗權限。
  • QMUIDisplayHelper
  • 屏幕相關的工具類,按照功能類型來劃分,總共包含以下幾個特性:
  1. 方便地獲取一個 DisplayMetrics 實例。
  2. 獲取屏幕信息,包括屏幕密度、屏幕寬度和高度、狀態欄高度、ActionBar 高度等。
  3. 獲取設備硬件信息,包括是否有可用攝像頭、是否有硬件菜單、是否有網絡、SD Card 是否可用、當前選擇的國家語言等。
  4. 判斷當前是否處于全屏狀態,控制進入/退出全屏狀態。
  5. dp 與 px 數值的相互轉化。
  • QMUIDrawableHelper
  1. 快速繪制一張指定大小、顏色、邊框的圖片,支持形狀為圓角矩形和圓形。
  2. 快速繪制一張帶上分隔線或下分隔線的圖片。
  3. 快速繪制一張可帶圓角的漸變圖片。
  4. 將當前圖片的顏色換成另一個顏色。
  5. 將兩張圖片疊加后生成一張新的圖片。
  6. 對某個 View 截圖生成圖片。
  • QMUIPackageHelper
  • 提供簡便的方式獲取 App 的版本信息,可以單獨獲取主版本號、次版本號以及修正版本號。
  • QMUIResHelper
  • 封裝了更加便捷的方法,用于獲取當前 Theme 下的 Attr 值,支持 Float、Color、ColorStateList、Drawable和 Dimen 類型的 Attr。

-QMUISpanHelper

  • 提供了方法使得 QMUIMarginImageSpan 能被更便捷地使用。
  • QMUIStatusBarHelper
  • 狀態欄相關的工具類,按照功能類型來劃分,總共包含以下幾個特性:
  1. 快速實現沉浸式狀態欄(支持 4.4 以上版本的 MIUI 和 Flyme,以及 5.0 以上版本的其他 Android)。
  2. 快速設置狀態欄為黑色或白色字體圖標(支持 4.4 以上版本 MIUI 和 Flyme,以及 6.0 以上版本的其他 Android)。

3.提供多個常用的工具方法,如獲取狀態欄高度、判斷當前是否全屏等等。

  • QMUIViewHelper
  • View 工具類,按照功能類型來劃分,總共包含以下幾個特性:
  1. 對 ImageView 進行處理,可以按比例縮放圖片。
  2. 對 View 做背景顏色變化動畫,支持多個動畫參數。
  3. 對 View 做進退場動畫,支持透明度變化和上下位移兩種方式。
  4. 提供多個常用的 View 相關工具方法,如對 View 設置單個方向的 padding、從 ViewStub 中獲取一個 View、判斷 ListView 是否已經滾動到底部等等。
  5. 提供多個常用的 View 相關工具方法,如對 View 設置單個方向的 padding、從 ViewStub 中獲取一個 View、判斷 ListView 是否已經滾動到底部等等。

開始使用

qmui

1. 引入庫

最新的庫會上傳到 JCenter 倉庫上,請確保配置了 JCenter 倉庫源,然后直接引用:

implementation 'com.qmuiteam:qmui:1.2.0'

至此,QMUI 已被引入項目中。

配置主題

把項目的 theme 的 parent 指向 QMUI.Compat,至此,QMUI 可以正常工作。

3. 覆蓋組件的默認表現

你可以通過在項目中的 theme 中用 <item name="(name)">(value)</item> 的形式來覆蓋 QMUI 組件的默認表現。具體可指定的屬性名請參考 @style/QMUI.Compat 中的屬性。

1. 引入庫

arch 庫會依賴 qmui 庫, 因此也需要引入 qmui 庫

implementation com.qmuiteam:arch:0.3.1

2. 在 Application#onCreate 中初始化

QMUISwipeBackActivityManager.init(this);


我來說兩句
您需要登錄后才可以評論 登錄 | 立即注冊
facelist
所有評論(1)
三月末 2019-9-2 17:01
這個功能強大
回復
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

重庆时时彩开奖模拟器 棒球 重庆幸运农场是假的吗 新版456棋牌官网 pk10开奖直播 玩游戏赚钱广告 上海时时乐幵奖结果走是 福彩欢乐生肖属于重庆地方彩票吗 老11选5开奖号码走势图 斗地主含有百人牛牛下载 天天乐棋牌游戏中心 福彩双色球开奖历史记录查询 女生婚后赚钱给父母花