Spinner的相关属性:
属性 | 功能 |
---|---|
android:dropDownHorizontalOffset | 设置列表框的水平偏移距离 |
android:dropDownVerticalOffset | 设置列表框的水平竖直距离 |
android:dropDownSelector | 列表框被选中时的背景 |
android:dropDownWidth | 设置下拉列表框的宽度 |
android:gravity | 设置里面组件的对其方式 |
android:popupBackground | 设置列表框的背景 |
android:prompt | 设置对话框模式的列表框的提示信息(标题),只能够引用string.xml 中的资源id,而不能直接写字符串 |
android:spinnerMode | 列表框的模式,有两个可选值: dialog:对话框风格的窗口 dropdown:下拉菜单风格的窗口(默认) |
可选属性:android:entries | 使用数组资源设置下拉列表框的列表项目 |
Spinner遇到的问题:
1.改spinner样式:
√
<Spinner
android:layout_width="19dp"
android:layout_height="19dp"
android:background="@mipmap/ceshi2_spcircle_back">
2.修改spinner下拉框出现位置:
√
<Spinner
android:layout_width="19dp"
android:layout_height="19dp"
android:background="@mipmap/ceshi2_spcircle_back"
android:dropDownHorizontalOffset="10dp"
android:dropDownVerticalOffset="15dp">
</Spinner>
3.改spinner下拉框样式:
√ 添加为Spinner创建的适配器adapter如下语句,其中"choosebtn_item"为自定义布局
adapter.setDropDownViewResource(R.layout.choosebtn_item);
※ 需要注意的是如果用的是ArrayAdapter(数组适配器)则适配的是TextView控件,对于比较复杂的下拉列表样式则很有局限。可选择使用SimpleAdapter(简单适配器),实例用法:
String[] num = new String[]{"01", "02", "03", "04", "05","06", "07", "08", "09", "10"};
int images[] = new int[]{……}
data = new ArrayList<Map<String, Object>>();
for (int i = 0; i < num.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("images", images);
map.put("num", num[i]);
data.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, data,
android.R.layout.simple_spinner_item, new String[] { "images", "num" },
new int[] { R.id.images, R.id.num});
adapter1.setDropDownViewResource(R.layout.choosebtn_item);
_activity_test_spinner.setAdapter(adapter);
但是Spinner并不能实现多列的效果(目前没找到办法),想要多列的下拉框效果可以使用“GridView”