博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spinner控件详解
阅读量:5957 次
发布时间:2019-06-19

本文共 3386 字,大约阅读时间需要 11 分钟。

Spinner控件详解

效果图

P1

修改Spinner样式

在介绍之前,先看一下系统原生的样式

6.x & 5.x系统样式

x6

4.x系统样式

这里写图片描述

官方文档

XML属性 方法 描述
android:dropDownHorizontalOffset setDropDownHorizontalOffset(int) Amount of pixels by which the drop down should be offset horizontally.
android:dropDownSelector List selector to use for spinnerMode=”dropdown” display.
android:dropDownVerticalOffset setDropDownVerticalOffset(int) Amount of pixels by which the drop down should be offset vertically.
android:dropDownWidth setDropDownWidth(int) Width of the dropdown in spinnerMode=”dropdown”.
android:gravity setGravity(int) Gravity setting for positioning the currently selected item.
android:popupBackground setPopupBackgroundResource(int) Background drawable to use for the dropdown in spinnerMode=”dropdown”.
android:prompt The prompt to display when the spinner’s dialog is shown.
android:spinnerMode Display mode for spinner options.

填充数据

Spinner spinner = (Spinner) findViewById(R.id.spinner);// 建立数据源String[] mItems = {
"Item 1", "Item 2", "Item 3", "Item 4"};ArrayAdapter
adapter = new ArrayAdapter
(this, android.R.layout.simple_spinner_item, mItems);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(adapter);

点击监听

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {    @Override    public void onItemSelected(AdapterView
parent, View view, int pos, long id) { // TODO } @Override public void onNothingSelected(AdapterView
parent) { // TODO }});

设置下拉框的位置(偏移量)

系统默认效果在上面已经看到了,下拉框的左上方顶点坐标与Spinner控件左上角顶点坐标在同一位置

设置垂直偏移量

  • android:dropDownVerticalOffset
  • setDropDownVerticalOffset(int)

垂直偏移量就是只在原基础上向下或者向上偏移多少像素

例如,有时候我们想要下拉框在Spinner下面显示,类似这样
P1

我们可以这样写(XML)

设置水平偏移量

  • android:dropDownHorizontalOffset
  • setDropDownHorizontalOffset(int)

呃……

设置下拉框背景色

  • android:popupBackground
  • setPopupBackgroundResource(int)

和设置控件背景一样,除了色值也可以设置一个Shape,例如这样

android:popupBackground="@drawable/shape_green"

P2

自定义Spinner内文字字体样式

方式一

我们在填充数据的时候,创建了一个ArrayAdapter

ArrayAdapter
adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, mItems);

传进去一个item布局,这个XML就是Spinner字体样式的文件,我们可以自己创建一个XML传进去,例如:

方式二

在Spinner的监听里,获取到布局,修改样式,例如这样:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {    @Override    public void onItemSelected(AdapterView
parent, View view, int pos, long id) { // 获取到TextView TextView tv = (TextView)view; // 修改样式属性 tv.setTextColor(Color.BLUE); tv.setTextSize(15f); tv.setGravity(Gravity.CENTER); } @Override public void onNothingSelected(AdapterView
parent) { Toast.makeText(MainActivity.this, "Nothing", Toast.LENGTH_SHORT).show(); }});

自定义下三角样式

可以通过设置背景色,将这个三角冲掉

方式一

添加一个带有下三角的背景图

方式二

将背景色设置为透明

然后在Spinner的TextView上画一个我们想要的图案

android:drawableRight="@mipmap/dropmenu_icon_down"

思路就是这样,具体怎么修改,可以参考上面的“自定义Spinner内文字字体样式”,效果如下:

P3

自定义下拉框中Item样式

我们在创建完Adapter以后,设置了一个下拉框里的Item样式,是一个系统样式

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

那么,我们自定义一个自己的样式,就可以啦。例如这样:

效果图

P4

设置下拉框风格

  • android:spinnerMode
android:spinnerMode="dropdown"

就是我们上面一直演示的样式。

dialog

android:spinnerMode="dialog"

弹窗的样式,像这样:

P5

设置下拉框宽度

  • android:dropDownWidth

其他

android:dropDownSelector

android:prompt

转载于:https://www.cnblogs.com/sesexxoo/p/6190437.html

你可能感兴趣的文章
js如何在指定页面跳转到另一指定页面
查看>>
jQuery判断checked的三种方法
查看>>
实验二+018+李滨
查看>>
深入学习Make命令和Makefile(上)
查看>>
smali-2.2.4.jar & baksmali-2.2.4.jar
查看>>
统计题量
查看>>
设计模式精髓—封装变化
查看>>
(转)如何从storyBoard中加载其中一个controller
查看>>
jquery删除空图片错误图片,$('img[src=""]').remove();
查看>>
UITapGestureRecognizer 的用法
查看>>
Caffe配置简述
查看>>
[SDOI2017]遗忘的集合
查看>>
C++ stringstream介绍,使用方法与例子
查看>>
MySQL 第一篇
查看>>
用Vue来实现音乐播放器(八):自动轮播图啊
查看>>
Computer Go Programming 学习
查看>>
python数据类型详解
查看>>
sql查询优化
查看>>
Vuejs --01 起步
查看>>
JMeter基础
查看>>