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_entriesreference/下拉框选择的内容
ms_arrow_imagereference/下拉框箭头的资源
ms_arrow_tintcolor/下拉框箭头的颜色, 默认和字体的颜色一样
ms_hide_arrowbooleantrue下拉框是否有箭头
ms_background_colorcolorColor.WHITE下拉框背景的颜色
ms_background_selectorinteger/下拉框背景点击的效果
ms_text_colorcolor/下拉框字体的颜色
ms_dropdown_max_heightdimension0下拉框 下拉条目最大的高度
ms_dropdown_heightdimensionwrap_content(fill_parent、match_parent)拉框 下拉条目的样式
ms_dropdown_bgreference/下拉框 下拉条目的背景
ms_in_dialogbooleanfalse是否使用在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_hintstring/输入提示
es_heightdimensionR.attr.ms_item_height_size输入框的高度
es_textSizedimensionR.attr.nlui_config_size_spinner_text输入框的字体大小
es_textColorcolor#333333输入框的字体颜色
es_arrowImagereference/箭头图谱的资源
es_backgroundreference/输入框的背景
es_maxLineinteger1输入框支持的最大行数
es_entriesreference/默认可选性内容
es_dropdown_bgreferenceR.drawable.ms_drop_down_bg_radius下拉框 下拉条目的背景
es_enablebooleantrue下拉输入框是否可编辑
es_maxLengthinteger/下拉框输入可输入的最大字符长度
es_maxEmsinteger/下拉框输入可输入的最大字符宽度

常用方法

  • 设置默认可选项集合: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)