-
-
Notifications
You must be signed in to change notification settings - Fork 839
Spinner
xuexiangjys edited this page Apr 26, 2022
·
9 revisions
Android最常用的选择器控件。
遵循谷歌Material Design设计风格的下拉框,API与系统同步,可方便设置下拉样式和点击效果,支持编辑,支持下拉、选择监听。使用MaterialEditSpinner可支持编辑。
MaterialSpinner本质上是TextView + PopupWindow,而MaterialEditSpinner是EditText + PopupWindow的组合。
- 演示效果
- 使用案例
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
style="@style/Material.SpinnerStyle"
android:layout_marginLeft="40dp"
android:layout_marginTop="?attr/xui_config_content_spacing_vertical"
android:enabled="false"
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中 |
ms_pop_anim_style | reference | / | 弹出窗的动画样式 |
-
设置下拉列表的内容:setItems(T... items)
-
设置监听:
- 点击列表选择监听:setOnItemSelectedListener(OnItemSelectedListener onItemSelectedListener)
- 未进行选择的监听:setOnNothingSelectedListener(OnNothingSelectedListener onNothingSelectedListener)
-
设置下拉列表默认选择的序列:setSelectedIndex(int position)
-
设置下拉列表默认选中的内容:setSelectedItem(T item)
-
设置下拉列表的适配器:
setAdapter(ListAdapter adapter) setAdapter(MaterialSpinnerAdapter<T> adapter)
-
伸缩下拉列表
- 展开显示:expand()
- 收起隐藏:collapse()
可编辑,并且提供输入联想功能的下拉框。
- 演示效果
- 使用案例
<com.xuexiang.xui.widget.spinner.editspinner.EditSpinner
android:id="@+id/editSpinner"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
app:es_entries="@array/sort_mode_entry"
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 | / | 下拉框输入可输入的最大字符宽度 |
es_popAnimStyle | reference | / | 弹出窗的动画样式 |
- 设置默认可选项集合: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)
可自定义布局的下拉选择菜单。
- 使用案例
<com.xuexiang.xui.widget.spinner.DropDownMenu
android:id="@+id/ddm_content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- 属性表: (ExpandableLayout)
属性名 | 类型 | 默认值 | 备注 |
---|---|---|---|
ddm_contentLayoutId | reference | / | 下拉选择菜单的内容布局 |
ddm_dividerColor | color | R.attr.xui_config_color_separator_dark | 菜单垂直分割线的颜色 |
ddm_dividerWidth | dimension | 0.5dp | 菜单垂直分割线的宽度 |
ddm_dividerMargin | dimension | 10dp | 菜单垂直分割线的Margin |
ddm_underlineColor | color | R.attr.xui_config_color_separator_light | 菜单底线的颜色 |
ddm_underlineHeight | dimension | 1dp | 菜单底线的高度 |
ddm_maskColor | color | #88888888 | 半透明遮罩颜色 |
ddm_menuTextSize | dimension | 14sp | 菜单文字的字体大小 |
ddm_menuTextPaddingHorizontal | dimension | 5dp | 菜单文字水平padding |
ddm_menuTextPaddingVertical | dimension | 12dp | 菜单文字垂直padding |
ddm_menuTextSelectedColor | color | R.attr.colorAccent | 菜单文字选中的颜色 |
ddm_menuTextUnselectedColor | color | R.attr.xui_config_color_content_text | 菜单文字未选中的颜色 |
ddm_menuSelectedIcon | reference | R.drawable.ddm_ic_arrow_up | 菜单选择时的图标 |
ddm_menuUnselectedIcon | reference | R.drawable.ddm_ic_arrow_down | 菜单未选择时的图标 |
ddm_menuBackgroundColor | color | Color.WHITE | 菜单的背景颜色 |
ddm_menuHeightPercent | float | 0.5 | 选择菜单的高度/屏幕高度 占比 |