有时,我们需要一种弹窗式的页面,帮我们做一些简单的工作。我们直接从代码讲起吧!
view = this.getLayoutInflater().inflate(R.layout.activity_studentcard, null);
final PopupWindow pop = new PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,true);
//这个当中,其中第2,3参数是指示popouwindow的大小
,最后一个参数是表示可以获取焦点吗
pop.setOutsideTouchable(true);
//这个设置的是在popWindow外的面是否可以接受焦点
view.setOnClickListener(new View.OnClickListener() {
//
是指在popupWindow的其他地方点击所触发的事件
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
pop.dismiss();
//使得该popupwindow消失
}
});
pop.setBackgroundDrawable(new BitmapDrawable()); //设置使得点击back可以退回去
pop.showAsDropDown(view);
}
{
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = bgAlpha;
//0.0-1.0
getWindow().setAttributes(lp);
//设置透明度
}
@Override
public void onDismiss() {
backgroundAlpha(1f);
}
}
private void showPopupWindow(View view) {
在这个当中,我们会发现popupWindow是透明的,那么,我们可以设置相应控件的背景颜色就可解决透明这个问题。
还有,有时我们你需要使得背景变为灰色,我们可以用一个函数,
public void backgroundAlpha(float bgAlpha)
还有,当我们用上面方法返回时,我们也许发现我们的透明度依旧是灰的,那么我们需要增加一个监听器,在popuWindow消失时去触发它,pop.setOnDismissListener(new poponDismissListener());
然后在后面去实现它
class poponDismissListener implements PopupWindow.OnDismissListener{
上面就是,我所了解到的一些关于popupWindow的东西了。