一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。
- 开发中,页面头部为搜索样式的设计非常常见,为了可以像系统那样使用,这篇文章记录下在Flutter中自定义一个通用的搜索框AppBar记录。
为了方便扩展,可以在里使用,我们需要创建类继承有状态类并实现类,实现方法,并设置高度。
因为对实现了状态栏的适配,核心见下方源码:
思路: 字段自定义输入框,主要通过文本框监听实现清除搜索内容和显示清除按钮的功能,通过输入框是否有焦点监听进行刷新布局,通过定义回调函数的方式来进行搜索内容的监听。
- 键盘搜素监听: 只需设置的这两个属性即可。
- 键盘弹出收起处理: 在iOS中键盘的处理是需要我们自己来进行处理的,我们需要的功能是点击搜索框之外的地方失去焦点从而关闭键盘,这里我使用了处理键盘的一个插件:,在我们需要处理焦点事件页面根布局使用KeyboardDismissOnTap外部包裹即可,这个插件还可以主动控制键盘的弹出和收起,有兴趣的小伙伴可以了解下。
- 完整源码: