微信小程序开发之带搜索记录的搜索框
微信小程序开发中,实现带搜索记录的搜索框是一个非常重要的功能。下面将对该功能进行详细的解释。
**使用场景**
在开发之前,需要了解用户的使用场景。用户需要进行某类事物的搜索(通过文字输入进行精确搜索),在搜索框输入时,通过显示搜索历史从而降低用户二次搜索的成本。简单来说,就是输入过字段会保存,当用户再次搜索该字段时,能快速帮助用户输入。
**功能业务流程**
在实现该功能时,需要经过以下几个步骤:
1. 明确功能点:关键字搜索、实时显示历史搜索记录、历史搜索记录保存、将软键盘上的”回车按钮“改为”搜索按钮“
2. 设计数据库:使用 SQLite 数据库来存储搜索历史记录
3. 实现搜索记录保存:通过插入和删除操作数据库里面的数据
4. 实现搜索记录显示:通过查询操作来显示数据库里面的数据到 ListView 上
5. 解决冲突:ListView 和 ScrollView 的嵌套冲突
**涉及到的知识点**
### 1. SQLite 数据库的增删改查操作
在数据库中建立一个叫 records 的表用于存储搜索历史记录。里面只有一列 name 来存储历史记录。通过插入和删除操作数据库里面的数据,通过查询操作来显示数据库里面的数据到 ListView 上。已搜索的关键字再次搜索不重复添加到数据库。
### 2. ListView 和 ScrollView 的嵌套冲突
问题:ListView 和 ScrollView 一起使用会有冲突,导致 ListView 显示不全。
解决方案:本人采用继承 ListView 并重写它的 onMeasure() 方法来解决冲突。至于两者的滑动冲突则暂时不需要处理(默认拉动 ScrollView),这样用户就会感觉里面的搜索历史项和清空搜索记录项是在 ListView 里面一样,符合设计。
### 3. 实现搜索记录保存
使用 SQLite 数据库来存储搜索历史记录,通过插入和删除操作数据库里面的数据。
### 4. 实现搜索记录显示
通过查询操作来显示数据库里面的数据到 ListView 上。
### 5. 解决冲突
使用继承 ListView 并重写它的 onMeasure() 方法来解决 ListView 和 ScrollView 的嵌套冲突。
实现带搜索记录的搜索框需要了解用户的使用场景,设计数据库,实现搜索记录保存和显示,解决冲突等多个方面的知识点。