拉不拉稀肚拉稀 发表于 2024-8-19 17:40:04

字节跳动最新开源!超实用的UI轮子库,我只是个轮子搬运工

https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=%2F%2Fupload-images.jianshu.io%2Fupload_images%2F16595031-ee51304cae73726c.png%3FimageMogr2%2Fauto-orient%2Fstrip%7CimageView2%2F2%2Fw%2F402%2Fformat%2Fwebp&pos_id=img-6g8jgNfV-1715892504265
QMUI_Android

功能特性

全局 UI 设置

只需要修改一份设置表就可以调解 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。
丰富的 UI 控件

提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉革新等,使用方便机动,并且支持自定义控件的样式。
高效的工具方法

提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提拔开发效率。
功能列表



[*] QMUIAnimationListView
[*] 使 ListView 支持添加/删除 Item 的动画,支持自定义动画效果。
[*] QMUIBottomSheet
[*] 在 Dialog 的基础上重新定制了 show() 和 hide() 时的动画效果, 使 Dialog 在界面底部升起和降下。提供了以下两个面板样式:

[*] 列表样式:使用 QMUIBottomSheet.BottomListSheetBuilder 生成。
[*] 宫格范例:使用 QMUIBottomSheet.BottomGridSheetBuilder 生成。


[*] QMUICommonListItemView
[*] 用作通用列表 QMUIGroupListView 里的 Item,也可单独使用。支持以下样式:

[*] 展示一行文字。
[*] 在右侧或下方增长一行说明文字。
[*] 在 item 右侧表现一个开关或箭头或自定义的View


[*] QMUIDialog
[*] 提供了一系列常用的对话框,解决了使用体系默认对话框时在差别 Android 版本上的体现不划一的题目。使用差别的 Builder 来构建差别范例的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,差别的 Builder 特有的作用如下:

[*] MessageDialogBuilder: 消息范例的对话框 Builder。通过它可以生成一个带标题、文本消息、按钮的对话框。
[*] ConfirmMessageDialogBuilder: 带 Checkbox 的消息确认框 Builder。
[*] EditTextDialogBuilder: 带输入框的对话框 Builder。
[*] MenuDialogBuilder: 菜单对话框 Builder。
[*] CheckableDialogBuilder: 单选范例的对话框 Builder。
[*] MultiCheckableDialogBuilder: 多选范例的对话框 Builder。
7.CustomDialogBuilder: 自定义对话框内容区域的 Builder。

[*]AutoResizeDialogBuilder: 随键盘升降自动调解 Dialog 高度的 Builder


[*] QMUIEmptyView
[*] 通用的空界面控件,支持表现 loading、主标题和副标题、图片。
[*] QMUIFloatLayout
[*] 雷同 CSS 里 float: left 的浮动布局,从左到右排列子 View 并自动换行。支持以下特性:

[*] 控制子 View 之间的垂直/水平间距。
[*] 控制子 View 的水平对齐方向(左对齐/居中/右对齐)。
[*] 限制子 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 有以下特点:

[*] 可以设置链接的样式。
[*] 可以设置链接的点击事件。


[*] QMUILoadingView
[*] 用于表现 Loading 的 View,支持颜色和大小的设置。
[*] QMUIObservableScrollView
[*] 可以监听滚动事件的 ScrollView,并能在滚动回调中获取每次滚动前后的偏移量。
[*] QMUIPopup
[*] 提供一个浮层,支持自定义浮层的内容,支持在指定 View 的任一方向旁边展示该浮层,支持自定义浮层出现/消失的动画。
[*] QMUIListPopup
[*] 继承自 QMUIPopup,在 QMUIPopup 的基础上,支持表现一个列表。
[*] QMUIProgressBar
[*] 一个进度条控件,通过颜色变化表现进度,支持环形和矩形两种情势,主要特性如下:

[*] 支持在进度条中以文字情势表现进度,支持修改文字的颜色和大小。
[*] 可以通过 xml 属性修改进度背景色,当前进度颜色,进度条尺寸。
[*] 支持限制进度的最大值。


[*] QMUIPullRefreshLayout
[*] 下拉革新控件。支持自定义 RefreshView(表现正在革新的 View),触发革新的位置等特性。
[*] QMUIQQFaceView

[*] 支持表现表情的伪 TextView(继承自定义 View,而不是真正的 TextView), 实现了 TextView 的 maxLine、ellipsize、textSize、textColor 等基本功能。
[*] 支持与 QMUITouchableSpan 配合使用实现内容可点击。


[*] QMUIQQFaceCompiler
[*] QMUIQQFaceView 的内容解析器,将文本内容解析成 QMUIQQFaceView 想要的数据格式。
[*] IQMUIQQFaceManager
[*] QMUIQQFaceView 资源管理接口,使用 QMUIQQFaceView 必须实现这个接口以提供表情资源。
[*] QMUIRadiusImageView
[*] 提供为图片添加圆角、边框、剪裁到圆形或其他形状等功能。
[*] QMUIRoundButton
[*] 对 Button 提供圆角功能,支持以下特性:

[*] 指定圆角的大小。
[*] 分别指定差别方向的圆角大小。
[*] 指定圆角的大小为高度的一半,并跟随高度变化自适应圆角大小。
[*] 支持分别指定背景色和边框色,指定颜色时支持使用 color 或 ColorStateList。


[*] QMUIRoundButtonDrawable
[*] 使用该 Drawable 可以方便地生成圆角矩形/圆形 Drawable,提供设置背景色、描边大小和颜色、圆角自适应 View 高度等特性。
[*] QMUISpanTouchFixTextView
[*] 相比 TextView,修正了两个常见题目:

[*] 修正了 TextView 与 ClickableSpan 一起使用时,点击 ClickableSpan 也会触发 TextView 的事件的题目。
[*] 修正了 TextView 默认情况下如果添加了 ClickableSpan 之后就无法把点击事件传递给 TextView 的 Parent 的题目。


[*] QMUITabSegment
[*] 用于横向多个 Tab 的布局,包罗多个特性:

[*] 可以用 xml 或 QMUITabSegment 提供的 set 方法统一设置文字颜色、icon 位置、是否要下划线等。
[*] 每个 Tab 都可以非常机动的设置,内容上支持文字和 icon 的表现,icon 支持选中态,支持内容的排版对齐方向设置,支持表现红点,支持插入自定义的 View,支持监听双击事件等。
[*] 可以通过 setupWithViewPager(ViewPager) 方法与 ViewPager 绑定。


[*] QMUITipDialog
[*] 提供一个浮层展示在屏幕中心,提供了以下两种样式:

[*] 使用 QMUITipDialog.Builder 生成,提供了一个图标和一行文字的样式, 此中图标有 Loading、成功、失败等范例可选。
[*] 使用 QMUITipDialog.CustomBuilder 生成,支持传入自定义的 layoutResId。


[*] QMUITopBar
[*] 通用的顶部 Bar。提供了以下功能:
更多可参考 wiki 文档

[*] 在左侧/右侧添加图片按钮/文字按钮/自定义View。
[*] 设置标题/副标题,且支持设置标题/副标题的水平对齐方式。


[*] 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
[*] 颜色处置惩罚工具类,按照功能范例来分别,总共包罗以下几个特性:

[*] 为一个颜色设置透明度。
[*] 根据指定比例,在两个颜色值之间计算出一个颜色值。
[*] 将颜色值转换为字符串。


[*]QMUIDeviceHelper
末了

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提拔技能,每每是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我网络整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是盼望能够资助到想自学提拔又不知道该从何学起的朋侪,同时减轻各人的负担。
https://img-blog.csdnimg.cn/img_convert/90a6a8d941caa3e0581a7895355faabb.png
https://img-blog.csdnimg.cn/img_convert/2e3b4140b0fd0cbe6e89d380065c8eea.png
https://img-blog.csdnimg.cn/img_convert/e779ddca63bb29d6713a256ac5f30819.png
https://img-blog.csdnimg.cn/img_convert/2a1579e8aaf63db15f77d09633e51a66.png
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提拔的进阶课程,基本涵盖了95%以上Android开发知识点!岂论你是刚入门Android开发的新手,还是盼望在技术上不停提拔的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有资助,需要这份全套学习资料的朋侪可以戳我获取!!
由于文件比较大,这里只是将部分目次截图出来,每个节点里面都包罗大厂面经、学习条记、源码讲义、实战项目、讲解视频,并且会连续更新!
)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提拔的进阶课程,基本涵盖了95%以上Android开发知识点!岂论你是刚入门Android开发的新手,还是盼望在技术上不停提拔的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有资助,需要这份全套学习资料的朋侪可以戳我获取!!
由于文件比较大,这里只是将部分目次截图出来,每个节点里面都包罗大厂面经、学习条记、源码讲义、实战项目、讲解视频,并且会连续更新!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 字节跳动最新开源!超实用的UI轮子库,我只是个轮子搬运工