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获取按钮,最后设置点击事件

 效果如下:

 

PopupWindow简要_ide