PopupWindow
PopupWindow有点类似于Dialog,相同点在于都是弹出窗口,并且都可以对其进行自定义显示,并且里面的监听组件,进行相应的操作,但它与Dialog又有很大的区别,PopupWindow只是弹出窗口,不会使宿主Activity组件失去焦点,也就是说PopupWindow弹出后,你仍可以与宿主Activity进行交互,Dialog却不能做到这一点。
常用构造方法
public PopupWindow(Context context);
//给定一个上下文,当我们设置了setOutsideTouchable为true时,在触摸到弹框外部后自动关闭。但是这个构造方法必须去指定显示的布局,布局的宽高,焦点
public PopupWindow(View contentView, int width, int height, boolean focusable)
//给定一个布局。宽,高和焦点,但是在了setOutsideTouchable为true时,
//触摸到弹框外部也不能自动关闭,必须去指定背景,
//一般使用window.setBackgroundDrawable(new ColorDrawable(0x00000000))
常用方法
setOutsideTouchable(boolean);//指定设置显示PopuWindow之后在外面点击是否有效。
setFocusable(boolean); //指定是否获取焦点
setBackgroundDrawable(new ColorDrawable(0));//没有上下文时必须指定,否setOutsideTouchable无效
showAsDropDown(anchor, 0, 0);//设置显示PopupWindow的位置位于View的左下方,x,y表示坐标偏移量
showAtLocation(findViewById(R.id.parent), Gravity.LEFT, 0, -90);
//(以某个View为参考),表示弹出窗口以parent组件为参考,位于左侧,偏移-90。
setOnDismissListenerd(new PopupWindow.OnDismissListener(){})//设置窗口消失事件