美文网首页安卓 精品收藏AndroidDevelop
Android开源库:这里有一个简单好用、含历史搜索记录的搜索框

Android开源库:这里有一个简单好用、含历史搜索记录的搜索框

作者: Carson带你学安卓 | 来源:发表于2016-11-27 20:29 被阅读19561次

    前言

    • 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

    更多简单好用的开源库:简单 & 好用的开源组件:
    自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText


    请点赞!因为你的鼓励是我写作的最大动力!

    相关文章阅读
    Android开发:最全面、最易懂的Android屏幕适配解决方案
    Android事件分发机制详解:史上最全面、最易懂
    Android开发:史上最全的Android消息推送解决方案
    Android开发:最全面、最易懂的Webview详解
    Android开发:JSON简介及最全面解析方法!
    Android四大组件:Service服务史上最全面解析
    Android四大组件:BroadcastReceiver史上最全面解析


    欢迎关注Carson_Ho的简书!

    不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

    相关文章

      网友评论

      • 爱言语论:一些弹窗事件不能取消么,有的项目不需要这些东西
      • 烈火苍穹:可惜最低SDK版本要求是19,但现在还有很多低版本的手机
      • wethereornot:楼主按你默认设置字体大小搜索框高低,在2560*1280上显示没问题,但是在1280*800,就显示不出来,设置在1280*800显示出来,但是在2560*1280变形了,我想问如何去适配
      • AWeiLoveAndroid:我很欣赏博主,这个文档写的很棒,有产品经理的气魄。
      • nuisanceless:很清晰
      • 8dc79b30d7e5:作者有用过actionbar上自带的searchView吗?
      • 8dc79b30d7e5:最近一直在研究searchView的各种实现,mark一个
      • Showdy:使用内容提供者是不是会很好点,如果是网络搜索,监听文字改变,配合搜索时间间隙有点难搞啊
        Carson带你学安卓:这需要根据不同使用场景采用不同解决方案,这里实现的历史记录是实现本地搜索历史记录~

      本文标题:Android开源库:这里有一个简单好用、含历史搜索记录的搜索框

      本文链接:https://www.haomeiwen.com/subject/oexlpttx.html