Android最常用的选择器控件。

MaterialSpinner

遵循谷歌Material Design设计风格的下拉框,API与系统同步,可方便设置下拉样式和点击效果 ,支持编辑,支持下拉、选择监听。使用MaterialEditSpinner可支持编辑。

MaterialSpinner本质上是TextView + PopupWindow,而MaterialEditSpinner是EditText + PopupWindow的组合。

  • 演示效果

Spinner - 图1

  • 使用案例
1. <com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
2. style="@style/Material.SpinnerStyle"
3. android:layout_marginLeft="40dp"
4. android:layout_marginTop="?attr/xui_config_content_spacing_vertical"
5. android:enabled="false"
6. app:ms_entries="@array/sort_mode_entry" />
  • 属性表: (MaterialSpinner)
属性名 类型 默认值 备注
ms_entries reference / 下拉框选择的内容
ms_arrow_image reference / 下拉框箭头的资源
ms_arrow_tint color / 下拉框箭头的颜色, 默认和字体的颜色一样
ms_hide_arrow boolean true 下拉框是否有箭头
ms_background_color color Color.WHITE 下拉框背景的颜色
ms_background_selector integer / 下拉框背景点击的效果
ms_text_color color / 下拉框字体的颜色
ms_dropdown_max_height dimension 0 下拉框 下拉条目最大的高度
ms_dropdown_height dimension wrap_content(fill_parent、match_parent) 拉框 下拉条目的样式
ms_dropdown_bg reference / 下拉框 下拉条目的背景
ms_in_dialog boolean false 是否使用在dialog中

常用方法

  • 设置下拉列表的内容:setItems(T… items)
  • 设置监听:

  • 点击列表选择监听:setOnItemSelectedListener(OnItemSelectedListener onItemSelectedListener)

  • 未进行选择的监听:setOnNothingSelectedListener(OnNothingSelectedListener onNothingSelectedListener)
  • 设置下拉列表默认选择的序列:setSelectedIndex(int position)
  • 设置下拉列表默认选中的内容:setSelectedItem(T item)
  • 设置下拉列表的适配器:
1. setAdapter(ListAdapter adapter)
2. setAdapter(MaterialSpinnerAdapter<T> adapter)
  • 伸缩下拉列表

  • 展开显示:expand()

  • 收起隐藏:collapse()

EditSpinner

可编辑,并且提供输入联想功能的下拉框。

  • 演示效果

Spinner - 图2

  • 使用案例
1. <com.xuexiang.xui.widget.spinner.editspinner.EditSpinner
2. android:id="@+id/editSpinner"
3. android:layout_width="200dp"
4. android:layout_height="wrap_content"
5. android:layout_marginTop="10dp"
6. android:layout_marginLeft="20dp"
7. app:es_entries="@array/sort_mode_entry"
8. app:es_hint="@string/lab_please_select"/>
  • 属性表: (EditSpinner)
属性名 类型 默认值 备注
es_hint string / 输入提示
es_height dimension R.attr.ms_item_height_size 输入框的高度
es_textSize dimension R.attr.nlui_config_size_spinner_text 输入框的字体大小
es_textColor color #333333 输入框的字体颜色
es_arrowImage reference / 箭头图谱的资源
es_background reference / 输入框的背景
es_maxLine integer 1 输入框支持的最大行数
es_entries reference / 默认可选性内容
es_dropdown_bg reference R.drawable.ms_drop_down_bg_radius 下拉框 下拉条目的背景
es_enable boolean true 下拉输入框是否可编辑
es_maxLength integer / 下拉框输入可输入的最大字符长度
es_maxEms integer / 下拉框输入可输入的最大字符宽度

常用方法

  • 设置默认可选项集合:setItems(String[] data)
  • 设置下拉框条目点击监听:setOnItemClickListener(AdapterView.OnItemClickListener listener)
  • 设置输入框字体的颜色: setTextColor(int color)
  • 设置输入框的背景颜色:setBackgroundSelector(int backgroundSelector)
  • 设置输入框的字体大小:setTextSize(float textSize)
  • 设置输入框的提示信息:setHint(String hint)
  • 设置下拉框适配器:setAdapter(BaseEditSpinnerAdapter adapter)
  • 设置输入框是否可以编辑:setEnabled(boolean enabled)
  • 设置输入框输入的类型:setInputType(int type)