个人感觉spinner展示后的效果和popwindow极为相似,而且也可以通过BaseAdapter自定义界面,不过我现在更为倾向于Spinner,因为它下面有个spinnerMode是可以设置dialog的,也就是说可以弹框。下面直接上一个最简单的展示代码,至于自定义界面的BaseAdapter写listview的时候都写到要吐了。。。
<Spinner android:id="@+id/spiner" android:layout_width="150dp" android:layout_height="wrap_content" android:spinnerMode="dropdown"/> <!--android:popupBackground="#ff0000"设置下拉背景--> <!--android:dropDownWidth="200dp"设置下拉宽度--> <!--android:spinnerMode="dropdown"设置spinner样式为下拉--> <!--android:spinnerMode="dialog"设置spinner样式为弹出dialog-->
Spinner spiner = (Spinner) findViewById(R.id.spiner); spiner.setDropDownVerticalOffset(50);//设置垂直偏移量 spiner.setDropDownHorizontalOffset(0);//设置水平偏移量 spiner.setPopupBackgroundResource(R.color.colorPrimary);//设置下拉背景 final List<String> mList = new ArrayList<>(); mList.add("中国"); mList.add("日本"); mList.add("美国"); mList.add("英国"); mList.add("德国"); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mList);//默认样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//下拉样式 spiner.setAdapter(adapter); spiner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, mList.get(position), Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } });