Android PopupWindow怎么合理控制弹出位置

 我来答
匿名用户
2016-09-23
展开全部

Android PopupWindow怎么合理控制弹出位置

private void showPopupWindow(View parent) {  
        if (popupWindow == null) {  
            LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
            view = layoutInflater.inflate(R.layout.group_list, null);  
            lv_group = (ListView) view.findViewById(R.id.lvGroup);  
               
            Collections.reverse(groups);  
            GroupAdapter groupAdapter = new GroupAdapter(this, groups);  
            lv_group.setAdapter(groupAdapter);  
            popupWindow = new PopupWindow(view, 200, 220);  
        }  
        popupWindow.setFocusable(true);  
        popupWindow.setOutsideTouchable(true);  //设置点击屏幕其它地方弹出框消失      
        popupWindow.setBackgroundDrawable(new BitmapDrawable());  
        WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
        int xPos = -popupWindow.getWidth() / 2  
                + getCustomTitle().getCenter().getWidth() / 2;  
   
        popupWindow.showAsDropDown(parent, xPos, 4);  
   
        lv_group.setOnItemClickListener(new OnItemClickListener() {  
            @Override  
            public void onItemClick(AdapterView<?> adapterView, View view,  
                    int position, long id) {  
                loadNew(((StringItem)(groups.get(position))).getId());  
                if (popupWindow != null)   
                    popupWindow.dismiss();  
            }  
        });  
    }

只需要设置proupwindows的setOutsideTouchable属性即可。

以下为示例代码:

window.showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10);//显示位置


第一个参数指定PopupWindow的锚点view,即依附在哪个view上。

第二个参数指定起始点

第三个参数设置以起始点的右下角为原点,向左、上各偏移的像素。

自己看下API

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式