当前位置: 首页 > news >正文

Android自定义搜索框,封装了 历史搜索记录功能和样式

示意图

原文地址:http://www.apkbus.com/blog-927916-77030.html

[]()1. 简介

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

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

[示意图]()

[]()2. 功能介绍

[]()2.1 需求场景

[示意图]()

[]()2.2 功能需求

  • 功能列表

[示意图]()

  • 功能原型

[示意图]()

[]()2.3 功能示意

[示意图]()

[]()3. 特点

[]()3.1 功能实用

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

[]()3.2 使用简单

仅需要简单的xml属性配置

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

[]()3.3 二次开发成本低

  • 本项目已在 Github上开源:地址:SearchLayout
  • 具备详细的源码分析文档:请看文章[Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)]

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

[]()4. 具体使用

该款[SearchLayout]()使用非常简单,仅需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();
            }
        });
    }
}

[](https://github.com/Carson-Ho/Search_Layout#5-完整demo地址)5. 完整Demo地址

Carson_Ho的Github地址:SearchLayout

[示意图]

相关文章:

  • VuePress 静态网站生成
  • Android中View内部类MeasureSpec研究
  • Java多线程父子线程关系 多线程中篇(六)
  • 使用Nginx、Nginx Plus抵御DDOS攻击
  • 前嗅ForeSpider中数据浏览界面介绍
  • NPOI 笔记
  • webpy简单入门---1
  • 印刷名片用什么格式的文件好?
  • spring boot + vue + element-ui全栈开发入门——主页面开发
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何查找Fiori UI上某个字段对应的后台存储表的名称
  • 日志切割
  • Visual Studio 代码折叠快捷键(摘要)
  • 中小型研发团队架构实践九:任务调度Job
  • 数组
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • express如何解决request entity too large问题
  • JavaWeb(学习笔记二)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • LeetCode算法系列_0891_子序列宽度之和
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • STAR法则
  • 漂亮刷新控件-iOS
  • 嵌入式文件系统
  • 如何在GitHub上创建个人博客
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 硬币翻转问题,区间操作
  • 用Python写一份独特的元宵节祝福
  • #### go map 底层结构 ####
  • $.ajax()方法详解
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (javascript)再说document.body.scrollTop的使用问题
  • (Python) SOAP Web Service (HTTP POST)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三分钟)速览传统边缘检测算子
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法设计与分析)第一章算法概述-习题
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)http-server应用
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)德国人的记事本
  • (转)关于多人操作数据的处理策略
  • .htaccess配置常用技巧
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .netcore 获取appsettings
  • .net程序集学习心得
  • .net流程开发平台的一些难点(1)