例如淘宝,京东之类的点击购买之后,就会出现一个PopupWindow的窗口从下面弹出来,以便顾客更好的体验和方便顾客的操作性。
![(P%EK9J)U[9%(G$ES6`T}W.png
显示popupWindow
private void showPopwindow() {
// 1 利用layoutInflater获得View
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.popupwindow_add_product, null);
// 2下面是两种方法得到宽度和高度 getWindow().getDecorView().getWidth()
final PopupWindow window = new PopupWindow(view,WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);
// 3 参数设置// 设置popWindow弹出窗体可点击,这句话必须添加,并且是true
window.setFocusable(true);
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0xFFFFFFFF);
window.setBackgroundDrawable(dw);
// 设置popWindow的显示和消失动画
window.setAnimationStyle(R.style.mypopwindow_anim_style);
// 4 控件处理
ImageView iv_goodinfo_photo = (ImageView) view.findViewById(R.id.iv_goodinfo_photo);
TextView tv_goodinfo_name = (TextView) view.findViewById(R.id.tv_goodinfo_name);
TextView tv_goodinfo_price = (TextView) view.findViewById(R.id.tv_goodinfo_price);
NumberAddSubView nas_goodinfo_num = (NumberAddSubView) view.findViewById(R.id.nas_goodinfo_num);
Button bt_goodinfo_cancel = (Button) view.findViewById(R.id.bt_goodinfo_cancel);
Button bt_goodinfo_confim = (Button) view.findViewById(R.id.bt_goodinfo_confim);
// 加载图片
Glide.with(GoodsInfoActivity.this).load(Constants.Base_URl_IMAGE + goods_bean.getFigure()).into(iv_goodinfo_photo);
// 名称
tv_goodinfo_name.setText(goods_bean.getName());
// 显示价格
tv_goodinfo_price.setText(goods_bean.getCover_price());
// 设置最大值和当前值
nas_goodinfo_num.setMaxValue(5);
nas_goodinfo_num.setValue(goods_bean.getNumber());
//这是自定义view中接口的回调方法,以便能操作view视图
nas_goodinfo_num.setOnNumberChangeListener(new NumberAddSubView.OnNumberChangeListener() {
@Override public void addNumber(View view, int value) {
int number = goods_bean.getNumber();
goods_bean.setNumber(number + 1);
if (number + 1 >= 5) {
Toast.makeText(GoodsInfoActivity.this, "该商品最多购买5个",Toast.LENGTH_SHORT).show();
goods_bean.setNumber(5);
}
}
@Override public void subNumner(View view, int value) {
int number = goods_bean.getNumber();
goods_bean.setNumber(number - 1);
if (number <= 1) {
Toast.makeText(GoodsInfoActivity.this, "该商品最少购买1个", Toast.LENGTH_SHORT).show();
goods_bean.setNumber(1);
}
}
});
// 5 在底部显示
window.showAtLocation(GoodsInfoActivity.this.findViewById(R.id.ll_goods_root),
Gravity.BOTTOM, 0, VirtualkeyboardHeight.getBottomStatusHeight(GoodsInfoActivity.this));
网友评论