购物车PopupWindow的实现

例如淘宝,京东之类的点击购买之后,就会出现一个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));

你可能感兴趣的:(购物车PopupWindow的实现)