您的位置:首页 > 产品设计 > UI/UE

Android UI设计:PopupWindow

2015-08-28 22:35 495 查看

PopupWindow

PopupWindow也是一个对话框,它与Dialog相似,不同的是它可以设置弹出的对话框的位置、大小,也可以通过它弹出动画等。



[code]//创建PopupWindow对象
popup=new PopupWindow(MainActivity.this);
//获得布局的view
View popview=getLayoutInflater().inflate(R.layout.popup_layput, null);

//设置对话框的宽度、高度       popup.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        popup.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

        popup.setContentView(popview);//设置界面

        //此时PopuWindow不能获得焦点,不能点击外面消失
        popup.setFocusable(false);

        //设置外部可点击,使对话框dismiss()
        popup.setOutsideTouchable(true);

        //设置显示位置,在按钮2的下方显示
        popup.showAsDropDown(mbtn2);


补充说明:

1、setFocusable具体说明

当有setFocusable(false)的时候,说明PopuWindow不能获得焦点,即使设置设置了背景不为空也不能点击外面消失,只能由dismiss()消失,但是外面的View的事件还是可以触发,back键也可以顺利dismiss掉。当设置为popuWindow.setFocusable(true);的时候,加上背景设置,点击外面和Back键才会消失。

2、设置进场动画:

[code]popup.setAnimationStyle(R.style.AnimationPreview);//设置动画样式


3、设置back键使PopupWindow结束

[code]    public boolean onKeyDown(int keyCode, KeyEvent event) {
         if(keyCode==KeyEvent.KEYCODE_BACK){
             if(popup!=null&&popup.isShowing()){
                 popup.dismiss();//结束当前PopupWindow
             }
         }
        return true;//返回true使该事件得到响应
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: