Android的下拉选择实现方式有很多种,在之前的项目中多用于popwindow来实现,这次来学习下选择则框专用控件——spinner,spinner的原生样式只有有限的几种,并且样式不好看,不符合开发要求,接下来实现一个比较优雅的下拉选择框。
一、原生样式的使用
1、要使用spinner,首先要在xml中进行布局的编写,如下:
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@arrays/name"></Spinner>
2、在values中配置arrays文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="langues">
<item>java语言</item>
<item>C语言</item>
<item>php语言</item>
<item>c++语言</item>
</string-array>
</resources>
这时候,运行activity就可以看到运行效果,简单吧,但是这样的样式大多不适合开发设计图要求,接下来自定义一个spinner。二、自定义spinner
1、同样在xml布局中设置spinner:
<Spinner
android:id="@+id/spinner"
android:layout_margin="10dp"
android:layout_width="223dp"
android:layout_height="36dp"
android:overlapAnchor="false"
android:spinnerMode="dropdown"
android:popupBackground="@drawable/item_shape2"
android:background="@drawable/item_shape"/>
android:overlapAnchor="false"//默认为true,此设置会盖住输入框
android:spinnerMode="dropdown"//设置为下拉菜单方式
android:background="@drawable/item_shape"//设置Spinner的背景
android:popupBackground="@drawable/item_shape2"//设置下拉框背景
2、在activity中进行定义设置
mSpinner = (Spinner) findViewById(R.id.spinner);
mSpinner.setAdapter(new MyAdapter());
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
LinearLayout linearLayout = (LinearLayout) view;
TextView tv = (TextView) linearLayout.getChildAt(0);
tv.setTextColor(Color.RED);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
MyAdapter很简单,类似于ListView的Adapter,省略了……,运行效果如下:
源码地址:https://download.csdn.net/download/yoonerloop/10428394 点击打开链接