android下拉菜单spinner,虽然很方便,但有些需求是下拉框是固定大小,下拉菜单栏则是宽度全屏,据我所知android自带的spinner是不好处理的,所以就自己动手吧,自己动手有饭吃。废话少说,先上图再说
这里的实现方案是TextView加PopupWindow,并对其进行了封装。
照惯例,我们仍然从简单的说起,首先是适配器,因为我们的下拉列表其实就是一个listView,所以该适配器直接继承BaseAdapter,在这里我们只增加一个抽象方法getItemText(int position),用于TextView获取显示的文本,代码如下:
public abstract class BaseSpinnerAdapter extends BaseAdapter {
public abstract String getItemText(int position);
}
1、在构造方法中创建一个PopWindow,代码如下:
/**
* 初始化列表PopupWindow
*/
public void init(Context context) {
setGravity(Gravity.CENTER);
LinearLayout layout = new LinearLayout(context);
layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
layout.setBackgroundColor(0xaa000000);
layout.setOrientation(LinearLayout.VERTICAL);
mPopWindow = new PopupWindow(layout, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, true);
mPopWindow.setAnimationStyle(animationId);
line = new