Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android开源实战:简单好用、含历史搜索记录的智能搜索框

Android开源实战:简单好用、含历史搜索记录的智能搜索框

作者头像
Carson.Ho
发布于 2022-03-25 01:17:50
发布于 2022-03-25 01:17:50
2K00
代码可运行
举报
文章被收录于专栏:Android知识分享Android知识分享
运行总次数:0
代码可运行

前言

Android开发中,类似下图的搜索功能非常常见

今天,我将带来一款 封装了 历史搜索记录功能 & 样式Android 自定义搜索框 开源库,希望你们会喜欢。

已在Github开源:地址:SearchView,欢迎 Star

目录

1. 简介

一款封装了 历史搜索记录功能 & 样式Android自定义搜索框

已在Github开源:地址:SearchView,欢迎 Star

2. 功能介绍

2.1 需求场景

  • 在开始coding前, 理解好用户的需求场景 有助于我们更好地设计 & 实现功能
  • 需求场景如下

2.2 功能需求

  • 业务流程图 根据场景,梳理出来的功能业务流程图如下:
  • 功能列表 根据功能的业务流程图,得出功能需求如下
  • 功能原型

2.3 功能示意

3. 特点

3.1 功能实用

  • 该搜索框开源库具备除了历史搜索记录功能外,还具备一般的搜索框功能(如一键清空搜索框内容等等)
  • 封装了 常见的搜索框样式(如左侧图标、返回按键等等),使用起来更加方便

3.2 使用简单

仅需要简单的xml属性配置

下面1节会详细介绍其使用方法

3.3 二次开发成本低

所以,在其上做二次开发 & 定制化成本非常低。

4. 具体使用

该款SearchView使用非常简单,仅需2步:

步骤1:导入控件库

主要有 Gradle & Maven 2种方式:

  • 方式1:Gradle引入依赖 build.Gradle
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {
    compile 'com.carson_ho:SearchLayout:1.0.1'
}
  • 方式2:Maven引入依赖 pom.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
  <groupId>com.carson_ho</groupId>
  <artifactId>SearchLayout</artifactId>
  <version>1.0.1</version>
  <type>pom</type>
</dependency>

步骤2:设置搜索框样式

  • 具体属性设置
  • 使用示例 在XML文件中进行设置 activity_main.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<scut.carson_ho.searchview.SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:textSizeSearch="5dp"
        app:textColorSearch="#3F51B5"
        app:textHintSearch="输入查询关键字"
        app:searchBlockHeight="150"
        app:searchBlockColor="#ffffff"
        />

步骤3:设置点击搜索按键 & 返回按键后的操作

MainActivity.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 1. 初始化搜索框变量
    private SearchView searchView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // 2. 绑定视图
        setContentView(R.layout.activity_search);

        // 3. 绑定组件
        searchView = (SearchView) findViewById(R.id.search_view);

        // 4. 设置点击搜索按键后的操作(通过回调接口)
        // 参数 = 搜索框输入的内容
        searchView.setOnClickSearch(new ICallBack() {
            @Override
            public void SearchAciton(String string) {
                System.out.println("我收到了" + string);
            }
        });
        
        // 5. 设置点击返回按键后的操作(通过回调接口)
        searchView.setOnClickBack(new bCallBack() {
            @Override
            public void BackAciton() {
                finish();
            }
        });
    }
}

5. 完整Demo地址

Carson_Ho的Github地址:SearchView

6. 源码解析

具体请看文章:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)

7. 贡献代码

  • 希望你们能和我一起完善这款简单 & 好用的SearchView控件,具体请看:贡献说明
  • 关于该开源项目的意见 & 建议可在Issue上提出。欢迎 Star

8. 总结

  • 相信你一定会喜欢上 这款简单 & 好用的**SearchView**控件

已在Github上开源:SearchView,欢迎 Star

  • Carson带你学Android开源库系列文章:

Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco) Carson带你学Android:主流开源网络请求库对比(Volley、OkHttp、Retrofit) Carson带你学Android:网络请求库Retrofit使用教程 Carson带你学Android:网络请求库Retrofit源码分析 Carson带你学Android:图片加载库Glide使用教程 Carson带你学Android:图片加载库Glide源码分析 Carson带你学Android:V-Layout,淘宝、天猫都在用的UI框架,赶紧用起来吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android自定义View:你需要一个简单好用、含历史搜索记录的搜索框吗?
具体请看文章:Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)
Carson.Ho
2019/02/22
2.6K0
Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)
对于含有一键清空功能 & 更多自定义样式的EditText自定义控件具体请看我的另外一个简单 & 好用的开源组件:Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText
Carson.Ho
2019/02/22
3.4K0
Carson带你学Android:一款易用、好用的Android图片轮播库
好了不用去Google不用去Github不用去Bing找了(对不起我真的不建议你去百度),因为我已经帮你找了一个好轮子了:Android广告图片轮播控件
Carson.Ho
2022/03/24
1.4K0
Carson带你学Android:一款易用、好用的Android图片轮播库
Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco)
前言 图片加载在 Android开发项目中十分常见 为了降低开发周期 & 难度,我们经常会选用一些图片加载的开源库,而现在图片加载开源库越来越多,我们应该选用哪种呢? 今天。我就给大家介绍 & 对比现今主流的图片加载框架 目录 1. 主流的图片加载库-介绍 从Github上的Star数排序来看,现在主流的Android图片加载库有 Universal-Image-Loader Picasso Fresco Glide 下面是简单的介绍 2. 图片加载库- 对比 一图让你了解全部的图片加载库和他们
Carson.Ho
2022/03/24
1.6K0
Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco)
Carson带你学Android:主流开源网络请求库对比(Volley、OkHttp、Retrofit)
前言 网络请求在 Android 开发中非常常见,为了降低开发周期和难度,我们经常会选用网络请求的开源库 而现在网络请求的开源库越来越多,我们应该选用哪种呢? 今天我就给大家分别介绍 & 对比现今主流的网络请求库。 目录 1. 为什么要用网络请求开源库? 网络请求开源库是一个将 网络请求的相关功能封装好的类库 没有网络请求框架之前 App想与服务器进行网络请求交互是一件很痛苦的事:因为Android的主线程不能进行网络请求,需另开1个线程请求、考虑到线程池,缓存等一堆问题 使用网络请求库后
Carson.Ho
2022/03/24
6940
Carson带你学Android:主流开源网络请求库对比(Volley、OkHttp、Retrofit)
Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)
步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit 实例 步骤5:创建 网络请求接口实例 并 配置网络请求参数 步骤6:发送网络请求(异步 / 同步)
Carson.Ho
2022/01/21
3.9K0
Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)
Android自定义View开源:一款小众、优雅的加载等待控件
对比市面上的加载等待自定义控件,该控件Kawaii_LoadingView 的特点是:
Carson.Ho
2022/03/25
4660
Android自定义View开源:一款小众、优雅的加载等待控件
Android自定义EditText:一款简单实用的智能EditText(一键删除&自定义样式)
具体请看文章:Android自定义View:手把手教你做一款简单实用的SuperEditText(一键删除&自定义样式)
Carson.Ho
2022/03/25
1.1K0
Android自定义EditText:一款简单实用的智能EditText(一键删除&自定义样式)
Carson带你学Android:最全面解析图片加载库Glide用法
api也提供了几个常用的动画:比如crossFade() R.anim.item_alpha_in
Carson.Ho
2022/03/24
1K0
Carson带你学Android:最全面解析图片加载库Glide用法
Android自定义EditText:你需要一款简单实用的SuperEditText(一键删除&自定义样式)
具体请看文章:Android自定义View:手把手教你做一款简单实用的SuperEditText(一键删除&自定义样式)
Carson.Ho
2019/02/22
1.7K0
MMKV:微信团队开源的轻量级存储方案
MMKV的出现是为了替代SharedPreferences的轻量级存储解决方案。SharedPreferences需要被替换的原因主要是存在下述问题:
Carson.Ho
2021/12/06
1.3K0
MMKV:微信团队开源的轻量级存储方案
Android开源:一款你不可错过的可爱&小资风格的加载等待控件库
对比市面上的加载等待自定义控件,该控件Kawaii_LoadingView 的特点是:
Carson.Ho
2019/02/22
7190
Carson带你学Android:RxJava线程控制(含实例讲解)
Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。本文主要讲解的是: 线程控制(也称为调度 / 切换),即讲解功能性操作符中的:subscribeOn() & observeOn()
Carson.Ho
2021/12/06
1.1K0
Carson带你学Android:RxJava线程控制(含实例讲解)
Carson带你Android面试:Android语言篇
关于Android常见使用的相关内容文章,都可以从我的文集找到:Carson带你学:Android使用技巧
Carson.Ho
2022/01/05
6440
Carson带你Android面试:Android语言篇
轮子系列:一款能用易用好用的Android图片轮播轮子
常见的Banner的功能主要有: 1. 实现图片 & 标语展示 2. 循环播放 3. 支持手动切换 4. 支持加载本地 & 网络图片
Carson.Ho
2019/02/22
1.6K0
Android:这是一份全面 & 详细的RxJava学习攻略
首先,我将带大家入门 RxJava,主要介绍其作用、基础使用等,解决的是:初学者不理解Rxjava原理 & 不懂得如何使用的问题。
Carson.Ho
2021/12/06
1.1K0
Android:这是一份全面 & 详细的RxJava学习攻略
Carson带你学Android:图片加载库Glide源码讲解攻略
注:从上面可看出,Glide不仅解决了 图片异步加载 的问题,还解决了Android加载图片时的一些常见问题,功能十分强大。
Carson.Ho
2022/03/24
6700
Carson带你学Android:图片加载库Glide源码讲解攻略
3分钟全面了解Android主流图片加载库
图片加载在 Android开发项目中非常常见,为了降低开发周期和难度,我们经常会选用一些图片加载的开源库,而现在图片加载开源库越来越多,我们应该选用哪种呢?今天我就给大家分别介绍 & 对比现今主流的图片加载框架。
Carson.Ho
2019/02/22
4420
Android图片开源库:最全面、详细的Picasso讲解
---- 前言 上文已经对当今Android主流的图片加载库进行了全面介绍 & 对比 如果你还没阅读,我建议你先移步这里进行查看 今天我们来学习一下其中一个Android主流的图片加载库的使用
Carson.Ho
2019/02/22
2K0
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) - 简书
步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit 实例 步骤5:创建 网络请求接口实例 并 配置网络请求参数 步骤6:发送网络请求(异步 / 同步)
用户2802329
2018/08/07
9.9K0
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) - 简书
推荐阅读
Android自定义View:你需要一个简单好用、含历史搜索记录的搜索框吗?
2.6K0
Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)
3.4K0
Carson带你学Android:一款易用、好用的Android图片轮播库
1.4K0
Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco)
1.6K0
Carson带你学Android:主流开源网络请求库对比(Volley、OkHttp、Retrofit)
6940
Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)
3.9K0
Android自定义View开源:一款小众、优雅的加载等待控件
4660
Android自定义EditText:一款简单实用的智能EditText(一键删除&自定义样式)
1.1K0
Carson带你学Android:最全面解析图片加载库Glide用法
1K0
Android自定义EditText:你需要一款简单实用的SuperEditText(一键删除&自定义样式)
1.7K0
MMKV:微信团队开源的轻量级存储方案
1.3K0
Android开源:一款你不可错过的可爱&小资风格的加载等待控件库
7190
Carson带你学Android:RxJava线程控制(含实例讲解)
1.1K0
Carson带你Android面试:Android语言篇
6440
轮子系列:一款能用易用好用的Android图片轮播轮子
1.6K0
Android:这是一份全面 & 详细的RxJava学习攻略
1.1K0
Carson带你学Android:图片加载库Glide源码讲解攻略
6700
3分钟全面了解Android主流图片加载库
4420
Android图片开源库:最全面、详细的Picasso讲解
2K0
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) - 简书
9.9K0
相关推荐
Android自定义View:你需要一个简单好用、含历史搜索记录的搜索框吗?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验