• Stars
    star
    927
  • Rank 49,066 (Top 1.0 %)
  • Language
    Java
  • License
    MIT License
  • Created almost 8 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

SearchLayout

  • 作者:Carson_Ho
  • 概述

示意图

注:关于该开源项目的意见 & 建议可在Issue上提出。欢迎 Star !

1. 简介

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

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

示意图

2. 功能介绍

2.1 需求场景

示意图

2.2 功能需求

  • 功能列表

示意图

  • 功能原型

示意图

2.3 功能示意

示意图

3. 特点

3.1 功能实用

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

3.2 使用简单

仅需要简单的xml属性配置

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

3.3 二次开发成本低

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

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();
            }
        });
    }
}

5. 完整Demo地址

Carson_Ho的Github地址:SearchLayout

示意图

6. 源码解析

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

7. 开源协议

SearchLayout 遵循 MIT 开源协议

8. 贡献代码

  • 具体请看:贡献代码说明
  • 关于该开源项目的意见 & 建议可在Issue上提出。欢迎 Star !

9. 版本说明

2017-08-11 v1.0.0 :基础功能上线(关键字搜索、历史搜索记录 & 一键删除功能)

关于作者

More Repositories

1

RxJavaLearningMaterial

这是一份详细的RxJava学习攻略 & 指南
Java
702
star
2

Kawaii_LoadingView

一个可爱 & 小清新的加载等待Android控件
Java
257
star
3

Webview_Cache

WebView的缓存方案:H5缓存机制 + 资源预加载 + 资源拦截
Java
255
star
4

SuperEditText

一款简单、好用的自定义EditText(含一键删除&自定义样式)
Java
206
star
5

TimeAxle_View

自定义View实践:时间轴
Java
95
star
6

AndroidLearning

Android学习
Java
88
star
7

VLayout-Guide

VLayout使用指南
Java
86
star
8

Socket_learning

a simple demo for socket
Java
74
star
9

RetrofitDemo

Retrofit Learning
Java
71
star
10

Check_Net

Demo for checking internet link
Java
66
star
11

WebView_InterceptRequest

WebView资源拦截
Java
53
star
12

MultiThread_learning

多线程学习资料
Java
43
star
13

ShootAtOffer

剑指Offer(第二版)所有面试题总结
Java
39
star
14

Toptabbar

Demo for Top & Bottom tabbar
Java
34
star
15

RxJava_Flowable

learning for RxJava Flowable
Java
33
star
16

DataBase_Demo

Demo for SQLite DataBase operation
Java
32
star
17

AlgorithmLearning

Learning Algorithm
Java
30
star
18

PropertyAnimator_ofObject

PropertyAnimator_ofObject Demo
Java
24
star
19

NDK_Demo

Learing NDK
Java
21
star
20

ContentProvider

a Demo for ContentProvider
Java
15
star
21

Tab_menu_Demo

底部菜单栏学习Demo
Java
13
star
22

DIY_View

DEMO for DIY_View
Java
13
star
23

App_1shot_Finsh

多种方法实现"一键退出App"
Java
10
star
24

ProtocolBuffer

How to use ProtocolBuffer
Java
10
star
25

Service_Server

Demo for RemoteService Client
Java
9
star
26

RecyclerView

Demo for RecyclerView
Java
7
star
27

Service_Client

Demo for RemoteService Client
Java
6
star
28

Android_Banner

Demo for Android_Banner
Java
6
star
29

ContentProvider2

a process to get data from content Provider
Java
6
star
30

AndroidxFlutter

Android Flutter的使用
Java
5
star
31

DynamicProxy

Demo for DynamicProxy
Java
4
star
32

Java_Annotation

Demo for Java_Annotation
Java
3
star
33

AndroidLearningMaterial

a Learning Material of Android
Java
3
star
34

Demo_MiPush

Demo for MiPush
Java
2
star
35

RecyclerView_ItemDecoration

深入解析 RecyclerView ItemDecoration
Java
2
star
36

Reflection_Factory

Using Reflection optimaizes Factorypattern
Java
2
star
37

RxJava_ThreadControl

Java
1
star
38

Demo_Service

Demo for Service using
Java
1
star
39

Annation_Debug

a Annation for Test
Java
1
star
40

RxJava_ZipXRextrofit

a Demo for RxJava_Zip()X Rextrofit
Java
1
star
41

RxJava_FlatMapXRextrofit

RxJava x Rextrofit
Java
1
star
42

HandlerThread

Demo for HandlerThread
Java
1
star
43

Rxjava_BaseLearning

Rxjava_Base_Learning
Java
1
star