MaterialSearchBar:Android 上的 Material Design 搜索栏

发布时间:2026/7/9 3:28:33
MaterialSearchBar:Android 上的 Material Design 搜索栏 文章目录MaterialSearchBarAndroid 上的 Material Design 搜索栏1、 这玩意儿是干嘛的2、 它能做什么3、 怎么用4、 样式怎么调5、 几个细节6、 适合哪些人用MaterialSearchBarAndroid 上的 Material Design 搜索栏MaterialSearchBar 在 GitHub 上已经拿到 2.0K Star。这是 mancj 个人维护的一个 Android 库干的事很专注把 Lollipop 风格的 Material Design SearchView 塞进你的项目里。可定制、带语音输入、能记住搜索历史构造好的搜索栏几行布局就能跑起来。1、 这玩意儿是干嘛的就一件事给 Android App 提供一个符合 Material Design 规范的搜索栏组件。Android 原生搜索框样式杂、交互碎自己写一个要处理焦点、动画、历史记录、语音按钮、菜单、返回箭头整套下来上百行样板代码。MaterialSearchBar 把这些都打包好了开箱即用样式统一。支持jitpack 一行依赖引入布局里 add 一个 viewactivity 里 setListener搜索框就能用。2、 它能做什么核心能力分几块搜索框基础交互。点击展开、输入关键字、点关闭收起状态切换有 Material 风格的过渡动画。语音输入模式。把麦克风图标替换掉搜索图标调用系统语音识别。搜索历史。自动保存用户输入过的查询下拉显示建议列表可设最大保存数。菜单支持。可以 inflate 一个 menu挂右上角做筛选或设置入口。返回箭头。搜索栏展开时左侧出现返回箭头配合nav 抽屉很顺手。自定义建议适配器。默认建议列表不够用可以塞自己的 adapter做带头像、带分类的建议项。几十个 xml 属性。颜色、图标、形状、tint、光标颜色、提示文字、占位符全可调。3、 怎么用集成走 jitpack。先在项目级 build.gradle 加 maven 仓库allprojects{repositories{maven{urlhttps://jitpack.io}}}模块级 build.gradle 加依赖implementationcom.github.mancj:MaterialSearchBar:X.X.X布局里像普通控件一样加进去com.mancj.materialsearchbar.MaterialSearchBarstylestyle/MaterialSearchBarLightapp:mt_speechModetrueapp:mt_hintCustom hintapp:mt_maxSuggestionsCount10android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:idid/searchBar/activity 里 setOnSearchActionListener 接收回调searchBar.setOnSearchActionListener(this);searchBar.setLastSuggestions(loadSearchSuggestionFromDisk());点确认搜索时 onSearchConfirmed 触发。退出页面时 getLastSuggestions 拿到历史列表存本地下次进来 setLastSuggestions 恢复。4、 样式怎么调库自带 MaterialSearchBarLight 和 MaterialSearchBarDark 两套主题。改颜色有两条路。一条走 styles.xml。parent 选一套内置主题override 掉 mt_ 开头的属性比如 mt_searchBarColor、mt_dividerColor、mt_navIconTint。每条属性对应搜索栏的一个视觉元素搜索栏主色、分隔线、左右两侧图标 tint、文字颜色、光标颜色、占位符颜色都独立可调。另一条走 colors.xml。库内置了一套色值 key把对应颜色改掉全局生效。Light 主题用 #3a3a3a 做图标色、#FFFFFF 做底色Dark 主题用 #00a1ff 做图标色、#303030 做底色。改两三个色值就能切换品牌色。5、 几个细节mt_maxSuggestionsCount 设大设小有讲究。设太小用户输入几次就被截断设太大下拉列表会很长10 是个比较顺手的默认值。建议历史只在内存里不会自动落盘要持久化得自己 saveSearchSuggestionToDisk。mt_speechMode 开了之后图标换成麦克风点的瞬间库会调起 ACTION_RECOGNIZE_SPEECH没装语音引擎的设备会跳空。线上项目最好先测一下意向是否可解析。mt_roundedSearchBarEnabled 在 v21 以上是胶囊形搜索栏21 以下回退老版样式。如果整套 App 用 Material 风格开这个视觉会更顺。6、 适合哪些人用做 Android App、需要在多个页面加 Material 风格搜索栏的开发者老项目想给搜索框换 Material Design 皮、不想自己写一堆过渡动画的人想要带搜索历史和语音输入、又不想从零撸一个控件的小团队维护已有项目、预算有限想用现成开源库替代自研控件的工程师terial Design 皮、不想自己写一堆过渡动画的人想要带搜索历史和语音输入、又不想从零撸一个控件的小团队维护已有项目、预算有限想用现成开源库替代自研控件的工程师