Skip to content

nanjolnoSat/SearchSpinner2

Repository files navigation

SearchSpinner2

2020/09/01更新
主要涉及以下5个方面

  • 开发语言换成Java
  • 将ListView替换成RecyclerView
  • 将SearchSpinner独立成一个Module
  • 迁移至androidX
  • 对代码进行一定程度上的优化

下一次的优化计划:优化代码结构。更新时间:未知。现在SearchSpinner里面一堆set方法,看起来特别乱(这个方面还是觉得Kotlin好)。虽然用各种注释区分,但方法太多,还是没办法从根本上解决乱这个问题。
更换过程只是简单粗暴将Kotlin语言翻译成Java,并对小部分代码优化,测试只是从功能上进行测试,并没有检查代码逻辑。所以没办法保证和修改前完全一致,有Bug麻烦提issues,看到并且有时间的话会修改。
效果图:

使用方式:
1:可以继承SearchSpinner,然后给个泛型,这样在findViewById的时候就不用强转,并给filterModel这个变量赋值, 这个是负责当输入框有内容的时候,根据输入框的内容设置是否显示遍历到的内容。contentModel可以不赋值,如果空的话直接调用该对象分的toString()方法。
2:也可以直接使用StringSearchSpinner,filterModel默认是判断输入遍历到的字符串是否包含输入的内容.
3:继承BaseSpinnerAdapter的用法,该类需要指定2个泛型:数据类型和ViewHolder。ViewHolder提供了SimpleViewHolder,内部并没有做复杂的实现,只是直接继承。
BaseSpinnerAdapter需要重写4个方法:onCreateNormalViewHolder、onCreateSearchViewHolder、onBindNormalViewHolder和onBindSearchViewHolder。
其实就是将onCreateViewHolder和onBindViewHolder两个方法拆成四个,用法见名知义。
如果两个search方法的逻辑和两个normal方法的逻辑是一样的话,那可以继承SimpleSpinnerAdapter。

SearchSpinner自带的属性

属性名称 类型 注释
ss_elevationSize dimension 阴影的大小
ss_adapterItemHeight dimension adapter的高度
ss_defaultText string 默认的文本
ss_textColor color 默认/选择后显示的文本的颜色
ss_textSize dimension 默认/选择后文本的大小
ss_showArrow boolean 是否显示三角形
ss_changeArrowColor boolean 是否改变三角形的颜色,默认不改变
ss_arrowColor color 如果改变的话改变的颜色,默认#FFAAAAAA
ss_arrowImage color|reference 三角形的图片,要更换的时候才使用
ss_arrowWidth dimension 三角形的宽度,不设置使用原始高度
ss_arrowHeight dimension 三角形的高度,不设置使用原始高度
ss_tipText string 当没有搜索结果的时候,提示的文本,默认暂无搜索结果
ss_tipTextColor color 当没有搜索结果的时候,提示的文本的颜色,默认@android:color/black
ss_tipTextSize dimension 当没有搜索结果的时候,提示的文本的大小,默认15sp
ss_tipViewHeight dimension 当没有搜索结果的时候,提示的文本的高度,默认跟随根View的高度
ss_searchTextSize dimension 搜索框的文本的大小,默认15sp
ss_searchTextColor color 搜索框的文本的颜色,默认#FF000000
ss_searchHint string 搜索框提示的文本,默认空
ss_searchHintColor color 搜索框提示的文本的颜色,默认#FFFAFAFA
ss_searchHeight dimension 搜索框的高度,默认跟随根View的高度

StringSearchSpinner附带的属性

属性名称 类型 注释
ss_ignoreCase boolean 搜索的时候是否忽略大小写

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages