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, QMUICommonListItemViewQMUIGroupListSectionHeaderFooterView 使用。

  • QMUIGroupListSectionHeaderFooterView

  • 用作通用列表 QMUIGroupListView 里每个 Section 的头部或尾部,也可单独使用。

  • QMUIItemViewsAdapter

  • 一个带 cache 功能的“列表型数据-View”的适配器,适用于自定义 View 需要显示重复单元 ListView 的情景,cache 功能主要是保证在需要多次刷新数据或布局的情况下(ListViewRecycleView 的 itemView)复用已存在的 View。QMUI 用于 QMUITabSegmentTab 与数据的适配。

  • QMUIKeyboardHelper

  • 提供更加便捷的方式针对给定的 EditText 显示/隐藏软键盘,并且提供了工具方法判断键盘是否当前可见。

  • QMUILinkTextView

  • 使 TextView 能自动识别 URL、电话、邮箱地址,相比 TextView 有以下特点:

  1. 可以设置链接的样式。

  2. 可以设置链接的点击事件。

  • QMUILoadingView

  • 用于显示 LoadingView,支持颜色和大小的设置。

  • QMUIObservableScrollView

  • 可以监听滚动事件的 ScrollView,并能在滚动回调中获取每次滚动前后的偏移量。

  • QMUIPopup

  • 提供一个浮层,支持自定义浮层的内容,支持在指定 View 的任一方向旁边展示该浮层,支持自定义浮层出现/消失的动画。

  • QMUIListPopup

  • 继承自 QMUIPopup,在 QMUIPopup 的基础上,支持显示一个列表。

  • QMUIProgressBar

  • 一个进度条控件,通过颜色变化显示进度,支持环形和矩形两种形式,主要特性如下:

  1. 支持在进度条中以文字形式显示进度,支持修改文字的颜色和大小。

  2. 可以通过 xml 属性修改进度背景色,当前进度颜色,进度条尺寸。

  3. 支持限制进度的最大值。

  • QMUIPullRefreshLayout

  • 下拉刷新控件。支持自定义 RefreshView(表示正在刷新的 View),触发刷新的位置等特性。

  • QMUIQQFaceView

  1. 支持显示表情的伪 TextView(继续自定义 View,而不是真正的 TextView), 实现了 TextViewmaxLineellipsizetextSizetextColor 等基本功能。

  2. 支持与 QMUITouchableSpan 配合使用实现内容可点击。

  • QMUIQQFaceCompiler

  • QMUIQQFaceView 的内容解析器,将文本内容解析成 QMUIQQFaceView 想要的数据格式。

  • IQMUIQQFaceManager

  • QMUIQQFaceView 资源管理接口,使用 QMUIQQFaceView 必须实现这个接口以提供表情资源。

  • QMUIRadiusImageView

  • 提供为图片添加圆角、边框、剪裁到圆形或其他形状等功能。

  • QMUIRoundButton

  • Button 提供圆角功能,支持以下特性:

  1. 指定圆角的大小。

  2. 分别指定不同方向的圆角大小。

  3. 指定圆角的大小为高度的一半,并跟随高度变化自适应圆角大小。

  4. 支持分别指定背景色和边框色,指定颜色时支持使用 color 或 ColorStateList

  • QMUIRoundButtonDrawable

  • 使用该 Drawable 可以方便地生成圆角矩形/圆形 Drawable,提供设置背景色、描边大小和颜色、圆角自适应 View 高度等特性。

  • QMUISpanTouchFixTextView

  • 相比 TextView,修正了两个常见问题:

  1. 修正了 TextViewClickableSpan 一起使用时,点击 ClickableSpan 也会触发 TextView 的事件的问题。

  2. 修正了 TextView 默认情况下如果添加了 ClickableSpan 之后就无法把点击事件传递给 TextView 的 Parent 的问题。

  • QMUITabSegment

  • 用于横向多个 Tab 的布局,包含多个特性:

  1. 可以用 xmlQMUITabSegment 提供的 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

  • 配合沉浸式状态栏使用,用于协调子 ViewfitSystemWindows

  • QMUIWrapContentListView

  • 支持高度值为 wrap_contentListView,解决原生 ListView 在设置高度为 wrap_content 时高度计算错误的 bug。

  • QMUIBlockSpaceSpan

  • 通过在段落之间设置该 span,实现段间距的效果。

  • QMUICustomTypefaceSpan

  • 通过在段落之间设置该 span,实现段间距的效果。

  • QMUICustomTypefaceSpan

  • 支持以 Typeface 的方式设置 span 的字体,实现自定义字体的效果。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。

最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

面试真题解析】**

[外链图片转存中…(img-C5yeRYRk-1712034634537)]

【算法合集】

[外链图片转存中…(img-pQtaJtkw-1712034634538)]

【延伸Android必备知识点】

[外链图片转存中…(img-moc2qFX1-1712034634538)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐