PopWindows实现安卓底部选项弹窗。
可以分成超简单的三部,写在一个函数里。
**private void showPopupWindow(View view) {
// 第一部! 一个自定义的布局,作为显示的内容
final View contentView = LayoutInflater.from(context).inflate(R.layout.information_popupwindow, null);
final PopupWindow popupWindow = new PopupWindow(contentView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
//第二部! 设置按钮的点击事件,这里的选项我用button来实现,其它控件也可以,
Button button1 = (Button) contentView.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Toast.makeText(context, "点击了", Toast.LENGTH_SHORT).show();
popupWindow.dismiss();
}
});
//第三部! 设置poupwindow功能属性
popupWindow.setTouchable(true);
popupWindow.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("mengdd", "onTouch : ");
return false;
// 这里如果返回true的话,touch事件将被拦截
// 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
}
// 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键无法dismiss弹框 popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.information_back));
// 设置好参数之后再show
popupWindow.showAsDropDown(view);
}**