简单好用、含历史搜索记录的搜索框

 
 

前言

  • 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
dependencies {
    compile 'com.carson_ho:SearchLayout:1.0.1'
}
  • 方式2:Maven引入依赖
    pom.xml
<dependency>
  <groupId>com.carson_ho</groupId>
  <artifactId>SearchLayout</artifactId>
  <version>1.0.1</version>
  <type>pom</type>
</dependency>

步骤2:设置搜索框样式

  • 具体属性设置
示意图
示意图
  • 使用示例
    XML文件中进行设置
    activity_main.xml
<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

// 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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 JavaScript 中为搜索框添加历史记录,你可以使用 localStorage 对象来存储搜索历史。以下是一个简单的示例代码: ```javascript // 获取搜索框元素 const searchBox = document.getElementById('search-box'); // 监听搜索框的键盘事件 searchBox.addEventListener('keyup', function(event) { // 按下回车键时保存搜索历史 if (event.key === 'Enter') { // 获取当前输入的搜索关键字 const keyword = searchBox.value.trim(); // 确保关键字不为空 if (keyword !== '') { // 获取之前保存的搜索历史 const searchHistory = localStorage.getItem('searchHistory') ? JSON.parse(localStorage.getItem('searchHistory')) : []; // 将当前关键字添加到搜索历史中 searchHistory.push(keyword); // 更新 localStorage 中的搜索历史 localStorage.setItem('searchHistory', JSON.stringify(searchHistory)); // 清空搜索框 searchBox.value = ''; } } }); ``` 在上面的示例中,我们首先获取了搜索框的元素,并添加了一个键盘事件监听器。当用户按下回车键时,我们获取当前输入的关键字,并将其存储到 localStorage 中的名为 "searchHistory" 的变量中。如果之前没有保存过搜索历史,则创建一个新的空数组。然后,我们将新的关键字添加到数组中,并更新 localStorage 中的搜索历史。最后,我们清空搜索框的值,以便用户可以输入新的关键字。 你可以根据自己的需求进一步扩展这个示例,例如:显示搜索历史,使用户能够点击历史记录并进行搜索等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值