这里我用的是popupwindow和recyclerview来实现的。
点击控件的按钮时弹出popupwindow,里面是一个recyclerview
private void showPopupWindow(View view, final String[] strs) {
// 一个自定义的布局,作为显示的内容
View contentView = LayoutInflater.from(mContext).inflate(R.layout.pop_window, null);
popupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, false);
// 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
popupWindow.setTouchable(true);
// popupWindow.setOutsideTouchable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(), (Bitmap) null));
LinearLayout llPopw = (LinearLayout) contentView.findViewById(R.id.ll_popw);
llPopw.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
}
}
});
RecyclerView rcv = (RecyclerView) contentView.findViewById(R.id.rcv_pop);
rcv.setLayoutManager(new LinearLayoutManager(mContext));
rcv.setAdapter(adapter);
adapter.setStrs(strs);
popupWindow.setAnimationStyle(R.style.dropDownAnim);
// 设置好参数之后再show
popupWindow.showAsDropDown(view, 0, 2);
//监听popupwindow消失状态
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
setTextviewGray();
}
});
}