PopupWindow简要



 1.在layout里新建一popwindow.xml

2.在Activity里

//popwindow part
    private ImageButton popButton;
    private boolean click = true;
    private PopupWindow popUp;
    private View layout;

final  View poplayout = this.getLayoutInflater().inflate(R.layout.popwindow, null);
popUp = new PopupWindow(poplayout,
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
layout = getLayoutInflater().inflate(R.layout.activity_my_fax_main_page,null);  
//获得layout
        //点击窗口外消失
        popUp.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        popUp.setOutsideTouchable(true);
        popUp.setFocusable(true);

        popButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popUp.showAtLocation(layout, Gravity.BOTTOM, 0, 0);
                popUp.showAsDropDown(layout); //设置弹出效果
                popUp.showAsDropDown(null, 0, layout.getHeight())


                //窗口内点击
                poplayout.findViewById(R.id.footer_button1).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MyFaxMainPage.this, "clicked", Toast.LENGTH_SHORT).show();
                        popUp.dismiss();
                    }
                });

                poplayout.findViewById(R.id.footer_button2).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MyFaxMainPage.this, "clicked", Toast.LENGTH_SHORT).show();
                        popUp.dismiss();
                    }
                });
            }
        });

 因为按钮在窗口内,所以需要先获取窗口布局(非popupwindow,是布局XML),然后在布局内findviewbyid获取按钮,最后设置点击事件

 效果如下:

 

猜你喜欢

转载自jameskaron.iteye.com/blog/2174093
今日推荐